参考: https://blog.csdn.net/weixin_37855495/article/details/130082400
https://juejin.cn/post/7109497228103778311#heading-35
nginx的ssl配置步骤
1、申请SSL证书,从CA获取或者从云控制台申请,审核通过后下载nginx版本的证书
2、下载数字证书后,完整的文件有crt、key、pem
*crt:数字证书文件,crt是pem的扩展文件,因此有些人下载后可能没有。
* key:服务器的私钥文件,及非对称加密的私钥,用于解密公钥传输的数据。
* pem:Base64-encoded编码格式的源证书文本文件
3、在nginx目录下新建certificate目录,并将下载好的证书/私钥等文件上传至改目录。
4、修改配置文件nginx.conf
# ----------HTTPS配置-----------
server {
# 监听HTTPS默认的443端口
listen 443;
# 配置自己项目的域名
server_name www.xxx.com;
# 打开SSL加密传输
ssl on;
# 输入域名后,首页文件所在的目录
root html;
# 配置首页的文件名
index index.html index.htm index.jsp index.ftl;
# 配置自己下载的数字证书
ssl_certificate certificate/xxx.pem;
# 配置自己下载的服务器私钥
ssl_certificate_key certificate/xxx.key;
# 停止通信时,加密会话的有效期,在该时间段内不需要重新交换密钥
ssl_session_timeout 5m;
# TLS握手时,服务器采用的密码套件
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# 服务器支持的TLS版本
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 开启由服务器决定采用的密码套件
ssl_prefer_server_ciphers on;
location / {
....
}
}
# ---------HTTP请求转HTTPS-------------
server {
# 监听HTTP默认的80端口
listen 80;
# 如果80端口出现访问该域名的请求
server_name www.xxx.com;
# 将请求改写为HTTPS(这里写你配置了HTTPS的域名)
rewrite ^(.*)$ https://www.xxx.com;
}
复制代码
做了上述配置之后,如果使用http访问,会自动转成https。