持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情
1. 获取SSL证书
1. FreeSsl
这个暂时还没成功过,但是他的有效期有一年的比较简单,本人在部署的时候总是出现
Nginx command is not found
,暂未查询到解决方案
2. Ohttps
1.创建证书
-
首先注册一个Ohttps账号
-
进入控制台,点击
证书
进行创建证书
- 按照需求填写,使用
泛域名
更加简单一点,点击下一步获取 DNS解析记录
-
登录域名提供商控制台,创建DNS解析记录,并在本页面进行测试,然后创建证书
-
回到
证书
菜单,点击查看
-
将页面中的
cert.key
fullchain.cer
下载到本地备用
2. 配置自动更新
点击上一张图片中的
免DNS授权,记录配置
,查看需要设置的DNS
解析记录即可,在服务器提供商的控制台中手动添加记录。
2. Nginx部署准备
1. 查看是否安装 Http-ssl
- 查看是否安装 http-ssl模块
$ /usr/local/nginx/sbin/nginx -V
如果出现了 configure arguments: –with-http_ssl_module
则已安装,可以跳过本章节
2. 安装Nginx
Nginx安装配置教程请参考:Nginx安装部署流程、Centos安装Nginx错误集锦
-
下载安装包
cd /usr/local/src weget http://nginx.org/download/nginx-1.15.9.tar.gz
-
解压安装包
tar -zxvf nginx-1.15.9.tar.gz
-
配置SSL模块
cd nginx-1.15.9 ./configure --prefix=/usr/local/nginx --with-http_ssl_module
-
执行make命令重新编译Nginx
make
-
备份原有nginx替换文件
# 停止现有nginx nginx -s stop # 停止现在的Nginx nginx -s stop # 备份并覆盖文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak cp objs/nginx /usr/local/nginx/sbin/nginx
-
验证是否正确
#验证配置是否正常 /usr/local/nginx/sbin/nginx -t # 出现下列信息代表正常 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
-
重新启动Nginx
cd /usr/local/nginx/sbin ./nginx
-
查看编译参数
./nginx -V #提示一下信息则代表安装好了 nginx version: nginx/1.18.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
3. 原有Nginx添加HttpSSL模块
进入Nginx安装包目录 ,如我本人的
cd /opt/nginx-1.15.9
执行上一小节的4-8步骤即可
3. 部署SSL证书
-
上传证书到服务器上
cd /usr/local/nginx # 在nginx 的 conf 同级目录创建cert证书文件夹 mkdir cert # 将证书文件上传到服务器中 scp D:\cert.key root@xxx.xxx.xxx.xxx:/usr/local/nginx/cert/ scp D:\fullchain.cer root@xxx.xxx.xxx.xxx:/usr/local/nginx/cert/
-
编辑Nginx配置文件
编辑前记得备份原来的配置文件
cp nginx.conf nginx.conf.bak
server { listen 443 ssl; #这里换成自己的域名,多个域名用空格隔开 server_name lesscoding.net www.lesscoding.net mail.lesscoding.net; # ssl 证书地址 ssl_certificate /usr/local/nginx/cert/fullchain.cer; ssl_certificate_key /usr/local/nginx/cert/cert.key; #ssl验证相关配置 ssl_session_timeout 5m; #缓存有效期 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #安全连接可选的加密协议 ssl_prefer_server_ciphers on; #使用服务器端的首选算法 location / { root dist; index index.html index.htm; } }
-
将http重定向到https
此操作需要全站都是用 https 链接
server { listen 80; server_name lesscoding.net www.lesscoding.net mail.lesscoding.net; return 301 https://$server_name$request_uri; }
-
重启Nginx
nginx -s reload
4. 其他相关
- 输入自己的域名进行 检测是否开启https
- 一键生成服务器SSL证书配置
- 校验网站安全性