Nginx配置SSL实现https请求并重定向http请求

原因

本篇文章主要记录下自己配置 网站实现https请求的步骤和自己遇到的一些问题。

环境说明

在腾讯云同时也提供了免费的SSL证书(有效期1年)。

我们进入SSL证书管理控制台,点击【申请证书】

Nginx 证书部署
首先到你的腾讯云下载你的证书www.***.com.zip的压缩包,解压后有不同服务器的证书文件,这里只要Nginx的就可以了

图2
将Nginx文件中的1_www.***.com_bundle.crt和2_www.***.com.key上传至你的服务器中,我将文件放在了/etc/nginx下。

图3
接下来修改你的Nginx配置文件nginx.conf:
在这里插入图片描述
server {
listen 443;
server_name www..com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.
.com_bundle.crt;
ssl_certificate_key 2_www.
.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}
配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,然后通过service nginx restart重启nginx。就可以使 https://www.
**.com 来访问了。

这里有几个问题需要注意下:

配置文件的证书文件的地址一定要指定对,可能你没有放在Nginx的根目录下。
端口问题,http是80端口,但https是443,在配置nginx的时候千万别忘记修改端口。
相关参数说明供参考:

图4
http自动跳转https
配置到这里如果没有意外的话已经可以通过https访问了,但可能很多用户还是会通过http访问,所以需要将你原来的http重定向到你的https上。

只需要在Nginx配置中加入下面配置:

rewrite ^ https:// h t t p h o s t http_host httphostrequest_uri? permanent;

但要注意的是,不是在你原来443端口下加,这样会死循环的,而是另外启个server,类似于下面的配置:
在这里插入图片描述

server {
listen 80;
server_name www.***.com;
rewrite ^ https:// h t t p h o s t http_host httphostrequest_uri? permanent; # force redirect http to https
}

server {
listen 443;
server_name www..com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.
.com_bundle.crt;
ssl_certificate_key 2_www.
**.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}
这样就能实现重定向了。

如果想同时启用Http和Https,也可以这样配置:
在这里插入图片描述

server {
listen 80;
listen 443 ssl;
server_name www.***.com;
ssl_certificate www.***.com.crt;
ssl_certificate_key www.***.com.key;

}

总结

配置的时候还是多试试,然后访问的页面要放到这个配的nginx的目录下就行。
附;个人配置:
server {
listen 80;
listen 443 ssl;
server_name api.yidianwan.cn;
#server_name localhost;
ssl on;
ssl_certificate /etc/nginx/conf/1_api.yidianwan.cn_bundle.crt;# 改成你的证书的名字
ssl_certificate_key /etc/nginx/conf/2_api.yidianwan.cn.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 /usr/share/nginx/html/;
}
location /pictures/ {
    proxy_pass  http://apiServer;
    proxy_http_version 1.1;
}
include /etc/nginx/default.d/location.conf;

}

转自:https://www.jianshu.com/u/1d92d40a1a0a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值