[WordPress] 使用 DNS 手動驗證的方式,取得 SSL for Free 的 HTTPS 憑證

[WordPress] 使用 DNS 手動驗證的方式,取得 SSL for Free 的 HTTPS 憑證

之前使用了 SSL for Free 這個服務,讓我的 WordPress 網站可以支援 HTTPS

但 SSL for Free 簽發的憑證都只有三個月效期,

這幾天收到了通知信,說離 11/30 的效期截止日只剩一星期了:

 

想來更新憑證時,卻出現問題了~

原本我都是選 Manual Verification,

上傳一個檔案到網站上,讓 SSL for Free 可以驗證,

但之前可以成功,這次卻怎麼樣都不行…

直接去連像這樣的網址

https://ephrain.net/.well-known/acme-challenge/PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc

都會出現 HTTP 404 錯誤,說網頁找不到…

 

直接連進 Google Cloud Platform 的 VM 上,用 curl 連 localhost 的話是沒問題的:

testuser@wordpress-multisite-1-vm:~ $ curl -L -v http://localhost/.well-known/acme-challenge/PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc

*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /.well-known/acme-challenge/PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc HTTP/1.1
> Host: localhost
> User-Agent: curl/7.45.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sat, 25 Nov 2017 14:43:22 GMT
<
PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc.U-zRQI8OmiVSdvrG-T4OMc6VXYp0zD7COx3-0Sq-Lv4

 

但把 localhost 換成 ephrain.net 的話,就會變 HTTP 404 錯誤:

testuser@wordpress-multisite-1-vm:~ $ curl -L -v https://ephrain.net/.well-known/acme-challenge/PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc
* Trying 35.185.170.101...
* Connected to ephrain.net (35.185.170.101) port 80 (#0)
> GET /.well-known/acme-challenge/PEvUQf2wFY6FCuyJXdHWnrmAEg-YyH1fSqALacsYhLc HTTP/1.1
> Host: ephrain.net
> User-Agent: curl/7.45.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Date: Sat, 25 Nov 2017 14:43:47 GMT

 

這實在是很奇怪的問題…

為什麼 localhost 可以,實際的網域名稱就不行呢?

研究了半天,暫時沒有解答…

 

不過幸好 SSL for Free 還有第三種驗證方式,

那就是在 DNS 上加 TXT 記錄,讓 SSL for Free 來驗證~

下面就記錄一下過程吧~

 

SSL for Free 網站上,選擇 Manual Verification (DNS):

 

簡單說明了一下驗證的方法,按下按鈕繼續:

 

這邊會列出詳細的步驟~

基本上就是在網站的網域 DNS 上,加上指定的 TXT 記錄:

 

像我的網域名稱 ephrain.net 是向 Google Domains 購買的,

因此就到 https://domains.google.com/ 網站 > DNS,

輸入指定的 TXT 記錄,如下圖:

 

輸入好之後,可以回到 SSL for Free 網頁,

點下 Verify _acme_challenge.<網域名稱> 的連結。

如果 SSL for Free 可以成功取得 DNS 的 TXT 記錄的話,

可以看到像下面的結果:

 

不過有時候 DNS 的設定並不會很快更新…

可以試著把 TTL 調小 (像 Google Domains 最小可以設 60s 或 1m),

不過當我調小之後,也不是一分鐘後就立刻可以查到,

大約等了幾分鐘後再回來試,才成功了~

 

Verify 可以成功的話,就可以按下 Download SSL Certificate 的按鈕,下載 SSL 憑證,

之後就和 在 Bitnami WordPress 網站上啟用 HTTPS 這篇記錄的一樣,

把 SSL 憑證上傳到網站上,設定好重啟 Apache 服務就行了~

 

想確認 SSL 憑證已經更新的話,要先關閉 Chrome (Chrome 會快取憑證) 再重開,

如果 Chrome 的顯示憑證功能有開的話,

點選網址列的鎖頭圖案 > Certificate > Valid,就能看到新的憑證,

也能確認效期是到三個月之後囉:

 

(本頁面已被瀏覽過 4,090 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料