下面是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证书的机构,申请流程如下:
- 安装Certbot:
sudo apt-get update
sudo apt-get install certbot
- 申请证书:
sudo certbot certonly --standalone -d yourdomain.com
- 将证书文件上传至服务器:
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
- 配置Nginx,参照前面的过程中的第3步。
示例二:使用自签名证书
如果只是用于测试或内部使用,可以使用自签名证书。过程如下:
- 生成私钥和证书请求文件:
openssl genrsa -out /etc/nginx/ssl/domain.key 2048
openssl req -new -key /etc/nginx/ssl/domain.key -out /etc/nginx/ssl/domain.csr
- 使用私钥和请求文件生成证书:
openssl x509 -req -days 365 -in /etc/nginx/ssl/domain.csr -signkey /etc/nginx/ssl/domain.key -out /etc/nginx/ssl/domain.crt
- 配置Nginx,参照前面的过程中的第3步。
以上就是在Nginx下配置Https证书的详细过程,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx下配置Https证书详细过程 - Python技术站