给网站配置https连接(以本站为例)
前言
本站在运行之初是http连接方式,在后来的学习中慢慢的了解到了,给网站配置https连接不仅能提高网站的安全性,而且还有助于提高网站的百度SEO排名,因此博主便开始着手给网站配置https连接,也就是下载安装ssl证书。
一、申请免费的ssl证书
本站域名和服务器均购买于腾讯云,所以便在腾讯云网站上申请免费的ssl证书,登录腾讯云进入总览界面,在搜索框中搜索ssl证书并进入,如下图:
点击申请免费证书
填入必要的信息后(私钥密码推荐填入,但是需要牢记,因为证书密码不支持找回,若遗失需要重新申请),点击下一步,便可以等待申请的通过,大概20-40分钟左右便会受到邮件通知。
审核通过后,将申请到的证书下载保存后,解压会有以下这些类型:
二、配置nginx文件
获取到ssl证书后,接下来就是最重要的配置了,具体配置什么版本的证书可根据你自己网站所用的运行方式来选择,因为本站是依靠nginx来运行,所以就选择nginx版本的ssl证书,将nginx文件夹里的文件复制到服务器的nginx相关文件夹,并修改nginx的配置文件,部分配置代码如下:
server {
listen 80;
server_name blog.sepeter.cn www.sepeter.cn; # 你的域名
# 强制跳转https
rewrite ^(.*) https://$host$1 permanent;
}
server {
#listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPS,这里注销掉
listen 443 ssl;
server_name blog.sepeter.cn; #域名
# 增加ssl
#ssl on; #如果强制HTTPs访问,这行要打开
ssl_certificate /ssl/blog.sepeter.cn_bundle.crt; #ssl证书相关文件位置
ssl_certificate_key /ssl/blog.sepeter.cn.key; #ssl证书密码文件位置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密码为openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
# 定义首页索引目录和名称
location / {
root /usr/share/nginx/html;
proxy_pass http://120.0.0.1:8080; #此处改成自己项目运行的ip及端口
proxy_http_version 1.1;
proxy_connect_timeout 3600s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
index index.html index.htm;
}
#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 443 ssl;
server_name www.sepeter.cn; #域名
# 增加ssl
#ssl on; #如果强制HTTPs访问,这行要打开
ssl_certificate /ssl/www.sepeter.cn_bundle.crt;
ssl_certificate_key /ssl/www.sepeter.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密码为openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
# 定义首页索引目录和名称
location / {
root /usr/share/nginx/html;
proxy_pass http://127.0.0.1:8081; #此处改为自己项目的ip+端口
proxy_http_version 1.1;
proxy_connect_timeout 3600s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
index index.html index.htm;
}
#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
修改nginx的配置文件后(确保证书相关文件和密码文件路径正确,错误的话无法重启nginx),重新启动nginx运行,便可以给网站配置好https的连接了。
正文到此结束