Post view

不能向Comodo、Sectigo更新SSL證書,macOS Server從企業級EV TLS/SSL Certificate換成免費Let’s Encrypt

HTTPS加密使用的Extended Validation (EV) SSL Certificate的問題

在「2019年3月18日星期一」到期以前大約30天,我收到comodo寄來的Renew更新認證的通知信,今天comodo又寄了新的通知信件,提醒我要Renew Your Expiring SSL Certificate的時間只剩下「5天」!最後「2天」又寄非常無聊的倒數通知信,告訴我只剩「2天」!

事實上我已經訂購了新的EV SSL Certificate認證,但是因為WHOIS移除email資訊,再加上comodo又必須像第一次購買EV SSL Certificate認證一樣,重新認證電話、公司登記證等資訊,我非常懷疑能否趕在倒數最後一天以前完成新的EV認證!最後還是因為Sectigo自己的問題,導致無法renew新的SSL證書!

你可以看到目前Sectigo網站上有4種不同的SSL證書,入門等級是Domain Validation (DV) TLS/SSL Certificate,只要US$99,中間是Organization Validation (OV) TLS/SSL Certificate,每年要US$179,最高等級是Extended Validation (EV) LS/SSL Certificate,每年要US$249。雖然還有最右邊的UCC Multi-Domain TLS/SSL Certificates,每年要US$285。但這個是適用在:

UCC TLS / SSL證書或Exchange TLS / SSL專為Microsoft Exchange和/或Microsoft Office Communication Server環境構建。

使用MS®Exchange2007或更高版本的Office Communications Server環境的組織可以將所有證書(最多100個)合併到Comodo CA的單個UC證書中。

insoler是使用macOS系統與Mac mini電腦架設。我們不使用Microsoft Exchange和/或Microsoft Office,甚至是Windows!所以就算UCC Multi-Domain只要US$1美元,我也不能買這個證書。

從企業級Extended Validation (EV)降級到免費SSL證書

我買了2年的企業級Extended Validation (EV)證書,但是在這2年內,似乎無人在意,也無人關心insoler網站是「企業級SSL證書」的安全網站!在這2年內註冊的新帳號,也幾乎是註冊之後就再也不來!從來沒看過有新的帳號再次回到insoler!

既然無法取得最高等級的Extended Validation (EV)企業級證書,那麼換成最低等級的Domain Validation (DV) TLS/SSL Certificate總可以吧?竟然不行!

既然無法取得最頂級的「Extended Validation (EV) SSL Certificate」企業級延伸SSL證書,又不能降級到DV證書,我就乾脆從「最頂級EV SSL」跳過最廉價的「DV SSL」直接改用「完全免費Let’s Encrypt」加密!

其實這並不是我第一次使用「免費SSL證書」!在2年前購買最頂級的「Extended Validation (EV) SSL Certificate」企業級延伸SSL證書以前,我試用了一年的「免費SSL證書」。由於只能「免費試用一年」所以在1年免費試用期滿以後,我決定跳過入門的DV等級,直接購買最頂級的「Extended Validation (EV) SSL Certificate」企業級延伸SSL證書!因為insoler是「公司網站」而非「個人網站」。

雖然是非常小的奈米公司的網站,但因為無人在意insoler是使用「企業級延伸SSL證書」還是「免費SSL證書」所以就乾脆回到免費SSL證書!但是這次是改用「Let's Encrypt - Free SSL/TLS Certificates」提供的SSL證書。

打開macOS High Sierra 10.13.6可以支援的最後一個版本的Server 5.6.3就會看到有3個「未讀」的通知提示,提醒網站管理者,憑證「www . insoler . com」已過期!

點選Server左邊欄位的「憑證」就會看到在幾個憑證中,Comodo發的EV憑證已經過期!到期日是「2019年3月18日星期一」!

點選這個已過期的Comodo憑證,就會看到「已於16小時前到期」的畫面!已經過期的憑證會變成完全無法使用!

由於Renew訂購新的EV憑證,需要確認公司相關資料,並且Comodo、Sectigo會親自打電話去公司確認相關資料,因此通常需要5-7天左右的作業時間,如果來不及更新,Sectigo會自動發出「臨時憑證」可以暫時使用。但事實上這個「暫時憑證」根本無法使用!直接顯示「憑證不受信任」!一個完全不受信任的新憑證,甚至比已經過期的憑證還要糟糕!

因為Sectigo一直不更新我的EV憑證,所以也沒有正式的EV證書可以匯入!

這個「自簽根憑證」是安裝好Server 5.6.3的時候,就會自動建立的憑證。當然,因為沒有向任何有公信力的團體認證過,當然也就等於「憑證不受信任」的臨時憑證或是過期憑證!

使用Homebrew安裝Let’s Encrypt免費憑證

事實上,我一直不想要使用Let’s Encrypt免費憑證!理由非常簡單,就是因為Let’s Encrypt網站上除了「說明」與「捐錢」什麼事都不能做!不能直接在網站上申請免費憑證,所以如果不是因為Comodo、Sectigo出問題,一直不願意發行新的EV憑證,逼得我不得不在「已過期憑證」之後改用免費憑證!

https://letsencrypt.org/

由於無法在Let’s Encrypt網站上申請憑證,只好到處爬文,終於找到在macOS上安裝Let’s Encrypt免費憑證的方式!首先必須要先安裝Homebrew這個macOS專用的工具程式。

由於安裝Homebrew程式本身,以及接下來要繼續安裝的任何程式,包括PHP 7.3、Apache、Imagick... 以及安裝憑證專用的certbot全部都必須「連上網站下載檔案」,所以會造成「安全性漏洞」!

為了避免有任何的「安全性漏洞」,我並不允許insoler與BNW網站的電腦可以上網!事實上我在防火牆上封鎖了全部的DMZ→WEB的網路埠!但是為了安裝Homebrew、certbot只好在防火牆上暫時開啟BNW主機的網路埠,把Homebrew、certbot安裝在BNW主機上,等到取得「免費憑證檔案」再把「憑證檔案」複製到insoler主機上使用!

安裝步驟是:

1. 安裝Homebrew。在終端機上直接輸入下載檔案的指令。

/usr/bin/ruby -e "$(curl -fsSL https ://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 在終端機直接輸入brew安裝指令,繼續下載所需的檔案。由於我是在BNW網站安裝certbot,BNW主機還是老舊的OS X El Capitan 10.11.6,Homebrew已經不再支援舊的macOS版本!所以一開始會遇到許多錯誤,只好不斷的執行底下的這個指令,不斷重新安裝,直到正常安裝完畢為止!

brew install certbot

3. 透過certbot正式取得「免費憑證」:

www:inc brent$ sudo certbot certonly --manual -d www.insoler.com

Password:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

Plugins selected: Authenticator manual, Installer None

Obtaining a new certificate

Performing the following challenges:

http-01 challenge for www.insoler.com

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

NOTE: The IP of this machine will be publicly logged as having requested this

certificate. If you're running certbot in manual mode on a machine that is not

your server, please ensure you're okay with that.

 

Are you OK with your IP being logged?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(Y)es/(N)o: y

 

 

在接下來的這個步驟,你必須在網站的根目錄底下建立一個.well-known以及acme-challenge的檔案夾。由於macOS上無法直接建立「句點」開頭的隱藏檔案夾,所以只能用終端機指令來建立「句點」開頭的隱藏檔案夾。

然後在acme-challenge檔案夾底下新增一個檔案名稱是AqdFQx_Mw61XclCrOggdXlVcWrs1VLPAgs7LTK6oujE(沒有副檔名)的純文字檔案,檔案內容是只有一行的加密文字「AqdFQx_Mw61XclCrOggdXlVcWrs1VLPAgs7LTK6oujE.iaVfwdA7KqqvUXc8PYzoXsiL1B1Xxj9LCASeGq04QGY」。

這個動作主要是用來證明你用有insoler網站的控制權,你可以在網站上建立加密檔案,來證明你擁有這個網站。不過,我非常懷疑,如果駭客入侵某個網站的Web Server主機,也在該網站上幫站長重新申請一個新的免費憑證,不知道會有什麼後果?

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Create a file containing just this data:

 

AqdFQx_Mw61XclCrOggdXlVcWrs1VLPAgs7LTK6oujE.iaVfwdA7KqqvUXc8PYzoXsiL1B1Xxj9LCASeGq04QGY

 

And make it available on your web server at this URL:

 

http ://www.insoler.com/.well-known/acme-challenge/AqdFQx_Mw61XclCrOggdXlVcWrs1VLPAgs7LTK6oujE

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Press Enter to Continue

Waiting for verification...

Cleaning up challenges

 

IMPORTANT NOTES:

 - Congratulations! Your certificate and chain have been saved at:

   /etc/letsencrypt/live/www.insoler.com/fullchain.pem

   Your key file has been saved at:

   /etc/letsencrypt/live/www.insoler.com/privkey.pem

   Your cert will expire on 2019-06-16. To obtain a new or tweaked

   version of this certificate in the future, simply run certbot

   again. To non-interactively renew *all* of your certificates, run

   "certbot renew"

 - If you like Certbot, please consider supporting our work by:

 

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate

   Donating to EFF:                    https://eff.org/donate-le

 

www:inc brent$

事實上,我先申請BNW的免費憑證來測試看看,但是不知道為什麼竟然失敗!我完全不知道原因出在哪裡?只好嘗試申請insoler的憑證看看,想不到一次就看到「Congratulations!」恭喜申請成功的訊息!

但是這個憑證只能用到「2019-06-16」為止,在過期以前,站長必須再回到終端機執行「certbot renew」指令來更新憑證!

事實上,我不但禁止Web Server主機上網,封鎖所有的網路埠,我甚至不信任Homebrew這種會從網路上下載一大堆我不知道是什麼內容的檔案!更不用說我更不相信certbot這種「bot」的機器人程式碼!

因此通常我都是在安裝好Homebrew以後,就會刪除整個檔案夾,當然也包括certbot!這樣的話,就算萬一Web Server被駭客入侵,駭客也無法直接利用現成的Homebrew工具,下載更多他想要的工具到網站主機上!

但是因為「免費憑證」的使用期限只有短短的3個月,每3個月就必須再回到終端機執行「certbot renew」指令來更新憑證!我只好保留Homebrew與certbot在BNW主機上。但是絕對不會安裝在insoler主機!

BNW網域即將在2019年5月到期,因此在5月以後,駭客也無法連上BNW網站,更不可能入侵!因此就算保留Homebrew與certbot在BNW主機上,應該也不會有任何的安全性問題。

我把certbot下載的「免費憑證」(放在/etc/letsencrypt/archive檔案夾裡面,總共有4個純文字檔案)複製到insoler以後,再使用Server 5.6.3的「匯入憑證」功能,把4個純文字檔案拖到Server視窗畫面上,就可以安裝好新的憑證,打開以後就像這樣:

當然,新的憑證必須可以用在HTTPS的SSL加密上才行!

這表示insoler已經成功的使用新的免費憑證,只不過有效期只有短短的3個月!

雖然說「3個月後到期」時間太短,常常需要更新憑證,有點麻煩。反正insoler的會員無人在意我們使用的SSL憑證是不是最安全、最頂級的「企業級EV憑證」還是「免費憑證」!當然,為了節省預算、開支,當然是選「免費憑證」繼續用5年、10年!

蘇言霖 2019/03/22 6 1506
Comments
Order by: 
Per page:
 
  •  ayaka: 
     

    我也是使用這種證書的yell就是為了避免中共政府監控我的郵件anger

    其實可以單獨使用一台機器來做證書更新這樣的動作,然後把證書scp到網頁伺服器上yell

     
     2019/03/241 replies1 replies 
    0 points
     
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2019/03/22 (2092 days ago)
Actions