SSL证书
进入腾讯云服务器 - 搜索SSL证书 - 证书管理- 申请免费的SSL证书
审核通过将证书下载到本地解压,解压结果获得5个文件,如下图:
通过Nginx配置证书,我们只需Nginx文件下的证书文件和私钥文件传到服务器, 并放到Nginx的配置文件路径
1_www.sitven.cn_bundle.crt
证书文件2_www.sitven.cn.key
私钥文件
配置文件路径:/usr/local/nginx/conf (此处为默认安装目录,请根据实际情况操作)
配置Nginx
编辑 Nginx 根目录下的配置文件nginx.conf
文件。修改内容如下:
注:此操作可通过执行 vim /usr/local/nginx/conf/nginx.conf
命令行编辑该文件。由于版本问题,配置文件可能存在不同的写法
例如:Nginx 版本为 nginx/1.15.0
以上请使用 listen 443 ssl
代替 listen 443
和 ssl on
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.sitven.cn;
#证书文件名称
ssl_certificate 1_www.sitven.cn_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.sitven.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
# 网站主页路径, 此为我博客项目。此路径仅供参考,具体按照实际需求操作
uwsgi_pass 127.0.0.1:8001;
include /etc/nginx/uwsgi_params;
}
}
配置完成,可通过执行以下命令验证配置文件问题
sudo nginx -t
若存在问题,请您重新配置或者根据提示修改存在问题
比如证书和私钥文件没放到正确的路径, Nginx
就会提示没有这样的文件,如下图:
我们根据错误提示将证书与私钥放到正确的路径后重新进行验证
若配置不存在问题,如下图:
我们重启 Nginx,即可使用 https://www.sitven.cn
进行访问
HTTP重定向HTTPS
http
协议通过80
端口通讯的而https
协议通过443
端口通讯, 所以我们需要做一个重定向, 把80端口的请求重定向到443端口,我们在Nginx配置文件的上一个代码块基础上增加一个server节点提供重定向服务
server {
listen 80;
server_name www.你的域名.cn;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
如此,我们通过http协议访问网站时会自动重定向到https
反向代理异常处理
1. 因为我的Jenkins
也是通过Nginx
反向代理的,所有出现https
反向代理http
静态资源访问无法加载的情况,Jenkins
自动化测试结果的html
报告无法通过相对路径加载页面静态文件
解决方法:
add_header Content-Security-Policy upgrade-insecure-requests;
只需要在我们要代理的地方加入即可,代理的Jenkins则加入到Jenkins的location中,如下图
2. 因为个人博客网站博文内容的image
全部存在七牛,Nginx
配置SSL证书后HTTP
重定向到HTTPS
,七牛储存空间的image都
无法加载
所以,七牛云储存空间外链域名也需配置SSL证书:
进入腾讯云服务器SSL证书-证书管理申请七牛云对象存储空间配置的外链域名所对应的SSL证书
然后进入七牛云-cdn-域名管理-HTTPS配置,配置上传SSL证书