环境:系统ubuntu16 申请证书是腾讯云免费证书

 

首先我在安装nginx SSL证书的时候犯了个错误,nginx是需要安装SSl的模块不然没法配置完成。需要安装一个 http_ssl_module.这是自己踩了一个坑,如果不加上的话,在后面配置完配置文件检查时就会报这个错

在linux的nginx中配置https及自动跳转

 

查看原有的模块,重新编译

在linux的nginx中配置https及自动跳转

安装SSL编译

在linux的nginx中配置https及自动跳转

 

这里注意只需要make

在linux的nginx中配置https及自动跳转

备份二进制文件,这一步我是看网上的,没感觉有什么用,这里我选择删了试试,我删除后服务并没有受到影响,仍然能继续访问。

在linux的nginx中配置https及自动跳转

在linux的nginx中配置https及自动跳转

在linux的nginx中配置https及自动跳转

清除nginx安装包

在linux的nginx中配置https及自动跳转

 

开启nginx

在linux的nginx中配置https及自动跳转

在linux的nginx中配置https及自动跳转

上传证书解压

在linux的nginx中配置https及自动跳转

解压后文件一共有这么多,进入nginx目录后发现两个秘钥,把它们拷贝到/usr/local/nginx/conf的目录里面

crt是证书文件,分为两段

key是私钥文件,分为两段

在linux的nginx中配置https及自动跳转

 

在linux的nginx中配置https及自动跳转

配置nginx/conf/nginx.conf的文件

默认在第98

在linux的nginx中配置https及自动跳转

 

配置文件如下

server {
listen 443 ssl;
server_name www.fengxiao.xyz;#绑定证书的域名
ssl_certificate 1_www.fengxiao.xyz_bundle.crt;#证书
ssl_certificate_key 2_www.fengxiao.xyz.key;#秘钥
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#ssl这个协议配置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

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;
}
}

在linux的nginx中配置https及自动跳转

检查nginx配置是否正确

在linux的nginx中配置https及自动跳转

 

接下来就是见证奇迹的时刻,访问不到,为啥了,没有重启nginx,重启nginx后,访问https

在linux的nginx中配置https及自动跳转

 

但是有个问题来了,不是自动跳转,接下来需要配置自动跳转,如果不输入https默认访问的还是http。在conf的配置文件里nginx.confserver字段里加入

在linux的nginx中配置https及自动跳转

 

检查配置重启

在linux的nginx中配置https及自动跳转

测试访问 www.fengxiao.xyz

哎,只能备案后再试了,但是按道理说应该自动跳转到https,可能没有成功。好吧今晚到此为止,等申请了备案再做。

 

在linux的nginx中配置https及自动跳转