怎麼給網站配置SSL證書(https)

幸運券發放發表於2018-06-07

怎麼給網站配置SSL證照(https)

訪問安全的需求和大眾的趨勢使得我們該考慮給網站加ssl了,給網站加上ssl並不難,只要申請一個免費的ssl證照,在伺服器端配置好ssl,wordpress稍加修改就可以實現https訪問了。

申請SSL證照

如今免費的ssl證照申請機構不少,對於個人站長來說使用一個免費的DV SSL就可以了,要求更高的可以選擇付費購買高階ssl證照。說到ssl證照,有以下三種

我們能申請到的免費證照就是DV SSL,個人站長不二之選。

免費證照從哪申請,我就介紹幾個,具體申請步驟百度即可!

配置SSL證照

虛擬主機沒有獨立ip的可能不支援ssl證照,而虛擬主機一般是共享ip,如果有獨立ip可以向空間商諮詢一下。使用ssl最好是有自己的伺服器,如購買一個vps搭建即可。web伺服器又有apache、nginx、iis等版本,使用不同的web伺服器配置的步驟也就不同,具體配置過程百度即可,有安裝了vps皮膚的伺服器配置ssl可能會容易一些。以下簡單演示本站配置過程:(阿里雲免費SSL證照+VPS | LNMP環境)

首先,下載證照,並上傳到伺服器。

其次進入網站的目錄下,找到usr/local/Nginx/conf下的”自己的域名字首.conf”這個檔案(安裝Nginx的方法不同有可能目錄也不一樣),在檔案中新增欄位:

listen 443 ssl;

ssl_certificate /usr/local/nginx/cert/213979626930477.pem;ssl_certificate_key /usr/local/nginx/cert/213979626930477.key;

重啟nginx,ssl配置生效。

WordPress的相關設定

在伺服器端配置好ssl證照並開啟了443埠的話,就可以通過https://域名訪問了,如果不能訪問,前面的配置過程可能沒有弄好。雖然能進行https訪問wordpress了,但是在開啟的頁面下通過審查元素你會發現站內還是有部分js檔案、css檔案、圖片等靜態資源都是http連結。由於HTTPS協議的規定,https網站是不能引用http資源的或者需要點選視窗確認http資源的引用,結果是網站沒有小綠鎖雖然是https連結,並且各種js效果失效css樣式缺失。https網頁引用了http的資源小綠鎖就沒有顯示,如果你不想再用http,那麼可以在後臺修改wordpress地址和站點地址,全部換成https://,

替換wordpress的http連結

由於我們在編輯文章時插入的圖片都是都標上了http連結,所以開啟網頁時小綠鎖依然沒有顯示。提供兩個程式碼可用於修改wordpress的http連結:

HTTPS絕對連結替換:替換wordpress網站中的http連結為https,程式碼放於主題function.php檔案中。(注意替換的是標籤僅是網站內部連結,外部無效)

add_filter(`get_header`, `fanly_ssl`);

function fanly_ssl(){

if( is_ssl() ){

function fanly_ssl_main ($content){

$siteurl = get_option(`siteurl`);

$upload_dir = wp_upload_dir();

$content = str_replace( `http:`.strstr($siteurl, `//`), `https:`.strstr($siteurl, `//`), $content);

$content = str_replace( `http:`.strstr($upload_dir[`baseurl`], `//`), `https:`.strstr($upload_dir[`baseurl`], `//`), $content);

return $content;

}

ob_start(“fanly_ssl_main”);

}

}

HTTPS相對連結替換:替換wordpress網站中的http連結為//相對連結,即http中引用http資源,https引用https資源,自動適應:

add_filter(`get_header`, `fanly_ssl`);

function fanly_ssl(){

if( is_ssl() ){

function fanly_ssl_main ($content){

$siteurl = get_option(`siteurl`);

$upload_dir = wp_upload_dir();

$content = str_replace( `http:`.strstr($siteurl, `//`), strstr($siteurl, `//`), $content);

$content = str_replace( `http:`.strstr($upload_dir[`baseurl`], `//`), strstr($upload_dir[`baseurl`], `//`), $content);

return $content;

}

ob_start(“fanly_ssl_main”);

}

}

當我們的網站https已經可以訪問了又不想繼續留著http的話,可以做一個http跳轉https的301重定向,這樣使用者訪問時就會自動跳轉到https,非常方便。

進入網站的目錄下,開啟”自己的域名字首.conf”這個檔案,新增程式碼:

if ($server_port = 80) {

return 301 https://$server_name$request_uri;

}

if ($scheme = http) {

return 301 https://$server_name$request_uri;

}

error_page 497 https://$server_name$request_uri;

然後再重啟一下Nginx,然後你可以方法你的非https連結看看是不是跳轉到了https連結,如果跳轉了,那麼祝賀你大功告成。

編寫不易,你的贊是最大鼓勵!!


相關文章