背景
最近在弄自己的个人网站,顺便也让网站支持了一波 https
访问。当你在 Chrome 浏览器
访问一些网站时,发现网站在网址左侧都有一个🔐的图标,点击显示当前连接是安全的。转身看看自己的网站,发现一个感叹号,并且友情提示连接不安全,可能会受到攻击。这不能忍!!!
近几年,Google
越来越重视 Web 站点的安全性,并一直大力推广网站采用 https
协议,并通过改变 Chrome
用户界面来引导用户,让用户明白采用HTTPS
协议的网站比采用 http
协议的网站更安全可靠,那我们就响应改变
获取证书
我申请的是 腾讯云 上的免费版 DVSSl 证书
,申请审核通过后可以对证书进行下载,有效期是1年。如果自己弄嫌麻烦可以在上面申请(审核一般很快)
注意:由于CA机构和证书代理商策略调整,从2018年1月1日起,同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书
下载的文件中分别有 Apache
、IIS
、Nginx
和 Tomcat
版本的证书,这里只介绍 Nginx
如何配置
配置证书
如果没有安装需要先安装 Nginx
,我们只需配置 Nginx
,使其支持 https 即443端口的访问
编辑 /etc/nginx/nginx.conf
配置文件,当然路径可能不一样,只要能编辑到nginx.conf
文件就行
nginx.conf
文件中一般默认已经有80端口
的配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
...
}
}
加上https 443端口
的配置:
# Settings for a TLS enabled server.
#
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
...
}
}
ssl_certificate
字段是证书路径,ssl_certificate_key
是私钥路径。将我们之前下载的证书和私钥文件配置到对应路径。
重启 Nginx
修改了 nginx.conf
后别忘了重新 reload Nginx
使其生效
$ nginx -s reload
查看效果
将请求地址从 http://xxx 替换为 https://xxx ,如果可正常访问说明配置成功,浏览器请求地址旁边的标识,已经变成了一个🔐的图标
其它
如果发现图标还是一个感叹号,标记为连接不安全,这是因为网站中存在 http
的资源,只要将所有 http
资源替换就好了