LNMP環境(nginx)安裝SSL憑證教學!(以wordpress為例)
在今天,終於把網站放上SSL憑證了,從晚上11點搞到現在半夜3.30分,主要是因為網路上nginx安裝SSL教學文都會有莫名的錯誤,之後自己研究然後試了好幾次才成功把網站成功使用SSL。這篇文章的環境是LNMP一鍵包,如果你不是使用lnmp一鍵包,但是使用nginx一樣可以參考此教學,主要就是目錄相關的位子要知道就好。
- Linux安裝LNMP教學:https://bonbg.com/2015/06/lnmp/
教學開始
一、首先,你必須先取得SSL的憑證,以目前來說有免費或付費的,我是使用沃通的免費SSL憑證,以免費的SSL憑證來說,我認為沃通是最好用的。
- 沃通SSH申請教學:https://45so.org/free-ssl.45so
二、申請完成也拿到憑證後,請解壓縮〈for Nginx〉裡面的文件,會有兩個檔案,分別是.crt和.key
三、之後把.crt和.key使用SFTP上傳到/usr/local/nginx/conf
四、為了安全,再把.ctr和.key權限設定為600。(右鍵→檔案權限)
五、之後進入/usr/local/nginx/conf/vhost,把對應你網站的.conf檔案下載到電腦中,並使用筆記本或是sublime text之類的編輯器打開他。
打開後,把以下代碼〝直接複製→貼上覆蓋上去〞,在把我有使用藍字的地方修改成自己的就可以了。
server
{
listen 80;
#listen [::]:80;
server_name bonbg.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/bonbg.com;include wordpress.conf;
#error_page 404 /404.html;
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}location ~ .*\.(js|css)?$
{
expires 12h;
}server {
listen 443;
server_name bonbg.com;
root /home/wwwroot/bonbg.com;
index index.html index.php index.htm;
include wordpress.conf;
error_page 400 /errpage/400.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
ssl on;
ssl_certificate_key /usr/local/nginx/conf/bonbg.com.key;
ssl_certificate /usr/local/nginx/conf/bonbg.com_bundle.crt;
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
六、之後使用SSH,輸入
/usr/local/nginx/sbin/nginx -t
這段指令主要是檢查nginx有沒有錯誤,如果修改完.conf檔案後,出現下方訊息,代表是成功的。
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
七、如果確定nginx是正常的,重啟nginx。
lnmp nginx restart
這時候你會發現,網址列輸入https://你的網址.xxx,已經可以正常連線,但是如果你想要每個網址都使用https進行連線呢? 這時候就需要使用強制跳轉了,繼續往下看吧!
八、如果你是使用Wordpress來進行架站,並且有使用偽靜態那直接設定偽靜態的文件即可。Wordpress偽靜態的檔案在/usr/local/nginx/conf/wordpress.conf
一樣使用SFTP把它下載到電腦,並用內建筆記本或其他編輯器來進行修改。
打開wordpress.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;
如果你不是使用Wordpress,有找到有一篇nginx強制跳轉https規則的文章,寫得滿不錯的,可以參考下。(如果你是使用Wordpress可以不用理我這段)
- nginx強制跳轉https:http://blog.sina.com.cn/s/blog_53befc5f0100xhk3.html
九、設定強制跳轉後,別忘記也要修改Wordpress一般設定中的WordPress 位址(URL)和網站位址(URL)喔!
十、強制跳轉https後,你會發現網址列並沒有一個綠色鎖頭(如果有可以直接忽視我這段),而是出現灰色鎖頭+三角形。
這時候代表你並沒有全站使用https連線,有部分是使用http進行連線的,這時候就使用Google chrome連結到你有出現三角形的網頁,然後按下F12然後選擇Console,來找尋使用http的連結。
至於這邊就依照Console給予的提示去找並修改吧!
十一、修改完https後,你就會發現鎖頭變綠色的了喔! 這代表你已經成功使用上SSL了
不好意思,我是這篇的作者
在來源那邊,可以麻煩使用超連結嗎?
謝謝
恩 好的 轉貼文章較多 主要是紀錄好文章用的 比較沒有注意格式
Ok, 謝謝配合^^
另外問一下 你下面使用的那個東西是外掛模組嗎? 可以找到我轉貼的耶 這是什麼?
這是Jetpack的「分享」功能
你找找看吧!