Nginx下配置Https证书详细过程

  

下面是Nginx下配置Https证书的详细过程:

1. 申请证书

首先需要到证书颁发机构(CA)进行申请,一般都需要提供域名的验证和身份的验证。申请成功后,会收到一个包含证书和私钥的压缩文件,其中包含以下文件:

  • domain.crt:证书文件,用于配置Nginx的ssl_certificate参数;
  • domain_nopwd.key:私钥文件,用于配置Nginx的ssl_certificate_key参数;
  • ca_bundle.crt:证书链,用于验证客户端证书的合法性。

2. 将证书文件上传至服务器

将domain.crt和domain_nopwd.key两个文件上传至Nginx服务器的指定目录,一般是/etc/nginx/ssl/。

3. 配置Nginx

在Nginx的配置文件中添加以下配置:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/domain_nopwd.key;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    location / {
        root /var/www/html;
    }
}

其中,“listen 443 ssl;”表示监听443端口并开启ssl功能;“server_name yourdomain.com;”表示域名;“ssl_certificate”和“ssl_certificate_key”分别指向之前上传的证书文件;“add_header Strict-Transport-Security …”表示配置HSTS,建议开启。

4. 测试

修改完配置文件后,需要重启Nginx服务,然后使用浏览器访问https网站,并查看证书是否正确。可以使用https://www.sslshopper.com/ssl-checker.html等工具检查证书是否正确配置。

示例一:使用Let's Encrypt申请证书

Let's Encrypt是一个提供免费SSL证书的机构,申请流程如下:

  1. 安装Certbot:
sudo apt-get update
sudo apt-get install certbot
  1. 申请证书:
sudo certbot certonly --standalone -d yourdomain.com
  1. 将证书文件上传至服务器:
sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /etc/nginx/ssl/domain.crt
sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /etc/nginx/ssl/domain_nopwd.key
  1. 配置Nginx,参照前面的过程中的第3步。

示例二:使用自签名证书

如果只是用于测试或内部使用,可以使用自签名证书。过程如下:

  1. 生成私钥和证书请求文件:
openssl genrsa -out /etc/nginx/ssl/domain.key 2048
openssl req -new -key /etc/nginx/ssl/domain.key -out /etc/nginx/ssl/domain.csr
  1. 使用私钥和请求文件生成证书:
openssl x509 -req -days 365 -in /etc/nginx/ssl/domain.csr -signkey /etc/nginx/ssl/domain.key -out /etc/nginx/ssl/domain.crt
  1. 配置Nginx,参照前面的过程中的第3步。

以上就是在Nginx下配置Https证书的详细过程,希望对你有所帮助。

相关文章