让网站支持https访问

背景

最近在弄本身的我的网站,顺便也让网站支持了一波 https 访问。当你在 Chrome 浏览器访问一些网站时,发现网站在网址左侧都有一个🔐的图标,点击显示当前链接是安全的。转身看看本身的网站,发现一个感叹号,而且友情提示链接不安全,可能会受到攻击。这不能忍!!!nginx

近几年,Google 愈来愈重视 Web 站点的安全性,并一直大力推广网站采用 https 协议,并经过改变 Chrome用户界面来引导用户,让用户明白采用HTTPS 协议的网站比采用 http 协议的网站更安全可靠,那咱们就响应改变浏览器

卧槽无情

获取证书

我申请的是 腾讯云 上的免费版 DVSSl 证书,申请审核经过后能够对证书进行下载,有效期是1年。若是本身弄嫌麻烦能够在上面申请(审核通常很快)安全

注意:因为CA机构和证书代理商策略调整,从2018年1月1日起,同一主域最多只能申请20张亚洲诚信品牌免费型DV版SSL证书bash

下载的文件中分别有 ApacheIISNginxTomcat 版本的证书,这里只介绍 Nginx 如何配置session

配置证书

若是没有安装须要先安装 Nginx ,咱们只需配置 Nginx,使其支持 https 即443端口的访问网站

编辑 /etc/nginx/nginx.conf配置文件,固然路径可能不同,只要能编辑到nginx.conf文件就行spa

nginx.conf 文件中通常默认已经有80端口的配置:3d

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是私钥路径。将咱们以前下载的证书和私钥文件配置到对应路径。code

重启 Nginx

修改了 nginx.conf 后别忘了从新 reload Nginx 使其生效

$ nginx -s reload
复制代码

查看效果

将请求地址从 http://xxx 替换为 https://xxx ,若是可正常访问说明配置成功,浏览器请求地址旁边的标识,已经变成了一个🔐的图标

yeah

其它

若是发现图标仍是一个感叹号,标记为链接不安全,这是由于网站中存在 http 的资源,只要将全部 http 资源替换就行了

相关文章
相关标签/搜索