天天看點

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

怎麼給網站配置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資源,自動适應:

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

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

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

進入網站的目錄下,打開"自己的域名字首.conf"這個檔案,添加代碼:

if ($server_port = 80) {

return 301 https://$server_name$request_uri;

if ($scheme = http) {

error_page 497 https://$server_name$request_uri;

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

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

繼續閱讀