Nginx配置Https协议的SSL证书及Http重定向自动跳转到Https

笔者用的是阿里云的服务器和免费证书

首先 需要去阿里云的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都没用 都会显示此网页包含过多的重定向
就这个能用


发布了174 篇原创文章 · 获赞 5 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/Piconjo/article/details/104996099