讓網站支持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 資源替換就行了

相關文章
相關標籤/搜索