記得剛畢業(yè),在無錫工作的時候,發(fā)現(xiàn)這個國度還有GFW,從那時起對https特別喜歡,傳說這樣就不會被GFW和諧了。因此曾一度想盡設(shè)法給自己的網(wǎng)站申請SSL證書。但是因為技術(shù)和money有限,擱置了。很慶幸,到目前為止,我還是很低調(diào)的。
用vps很長一段時間了,昨晚突然興起,添加個https玩玩。大家可以通過http://hjyl.org 訪問本博客。有啥好處呢?不知道。因為這個是StartSSL免費的SSL證書,可能有局限性,不像https://www.alipay.com/ 那樣真正實現(xiàn)完全加密,而且在瀏覽器上有個鎖的標(biāo)識,非常有個性,看圖,godaddy的更明顯。
查了很多信息,網(wǎng)上關(guān)于StartSSL免費SSL證書的申請和續(xù)期教程很多。這里只記錄下在lnmp+debian下的具體用法吧。
把ssl.key和ssl.crt放在/usr/local/nginx/conf/vhost下(這個路徑問題見下面更新),然后修改你的域名.conf,即nginx配置,主要是添加一個server,和默認(rèn)的server差不多,不同的是端口,我才發(fā)現(xiàn)https用的是443端口,就等于說把原來的hjyl.org:80改成hjyl.org:443,只是默認(rèn)80端口不需要表示出來。
ssl on;
ssl_certificate ssl.crt; #如果證書和此配置文件不在同一目錄,需寫上路徑,例如/home/wwwroot/ssl.crt
ssl_certificate_key ssl.key; #同上
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
include wordpress.conf;
location ~ .*.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
fastcgi_param HTTPS on; #添加這個,是為了在https時,點開的鏈接也https。
}
.........
}
然后/root/lnmp reload,看看效果吧!
測試過IE,chrome,和火狐,就火狐效果好點。chrome好像不支持,郁悶!不管怎樣,以前想做沒做到的事現(xiàn)在實現(xiàn)了,就這樣低調(diào)的酷吧!并且繼續(xù)折騰吧,希望會實現(xiàn)那理想的效果!『如找到更好的技巧,會同時在此頁更新的』
2013/04/22 更新:
幾經(jīng)波折,絞盡腦汁,終于弄明白了lnmp下的SSL一些問題。(在此特別感謝Rvsien 指點)
ssl_certificate ssl.crt;
ssl_certificate_key ssl.key;
此時,它調(diào)用的是/usr/local/nginx/conf/下的證書和key,所以這個配置建議還是帶上證書和key的路徑,例如
ssl_certificate /usr/local/nginx/conf/vhost/ssl.crt;
ssl_certificate_key /usr/local/nginx/conf/vhost/ssl.key;
別小看https的更換,從SEO上講,是一個新站的開始,等于換了一個域名。所以確認(rèn)換https時,我們將http 301重定向到https。只需要如此配置:
server
{
listen 80;
server_name hjyl.org www.hjyl.org;
rewrite ^(.*) https://$server_name$1 permanent; #http 301重定向到https規(guī)則
........
}
還有特別說明,如果firefox里地址欄不顯示一個鎖子的話,可能是頁面使用了http的鏈接,或者使用了http的外網(wǎng)的鏈接資源導(dǎo)致的,它的意思是:頁面部分加密。