Nginx配置Https协议的SSL证书及Http重定向自动跳转到Https
程序员文章站
2022-04-30 22:48:26
...
笔者用的是阿里云的服务器和免费证书
首先 需要去阿里云的SSL证书管理控制台下载SSL证书
然后 把证书解压 里面有两个文件 一个key 一个pem
传到Nginx的conf目录下的cert
目录(该目录是不存在的 需要自己创建)
修改nginx.conf的配置
根据自己的实际情况进行配置
server {
listen 443 ssl; #SSL协议访问端口号为443 此处若未添加ssl可能会导致Nginx无法启动
server_name localhost; #将localhost修改为证书绑定的域名 www.xxx.com
root html;
index index.html index.htm;
ssl_certificate cert/name.pem; #将name.pem替换成证书的文件名
ssl_certificate_key cert/name.key; #将dname.key替换成证书的**文件名
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
保存配置 完成
若还是访问不了 须在服务器中开启443端口
Http自动跳转到Https
还是在nginx.conf配置文件中
再添加一个server:
server
{
listen 80;
server_name www.test.com;
return 301 https://$server_name$request_uri;
}
最终效果:
server
{
listen 80;
server_name www.test.com;
return 301 https://$server_name$request_uri;
}
server
{
listen 443 ssl; #监听端口
server_name www.test.com; #域名
ssl_certificate cert/test.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/test.key; #将domain name.key替换成您证书的**文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
其余省略...
}
关于这个重定向 查了很多资料 rewrite和return 301都没用 都会显示此网页包含过多的重定向
就这个能用