Benjamin
Benjamin

新人工程師,偶爾分享工作心得(預計?

申請SSL憑證虛驚一場的事件記錄

SSL憑證是https的網站所需要的設定,可以在使用者訪問網站的時候將與網站之間的資料加密,避免中途被其他人攔截。 這篇的目的是記錄當時的前因後果,以及事後的反思。

SSL憑證是由受到認可的組織或政府發布的憑證,有效期限一年,設定完成後在這一年之內都可以維持安全的網站服務,讓使用者的帳號密碼或其他資料不會輕易被駭客從中搶走。不過一旦憑證過期就會在瀏覽器顯示「你與這個網站的連線不安全」字樣與全紅色的背景,此外來自其他服務的串接本服務的連線也都會失效。因此必須定期重新申請,確保網站目前設定中的憑證有效。

我們的SSL憑證申請流程是這樣的,根據內部文件管理各服務的憑證有效期限,在到期前兩個月左右開始準備申請SSL憑證。

申請憑證需要先使用工具產生一個可儲存憑證金鑰的keystore檔案並記錄設定用的金鑰密碼,再透過keystore檔產生對應的憑證請求檔,將請求檔交給客戶再由他們向政府單位送出申請,申請完成後再將新的憑證檔交給我們,依照各服務對外連線設定使用的工具不同,使用對應的方式完成設定,將舊的憑證替換掉。

完成後的檢核方法是點選瀏覽器網址列的鎖頭符號打開網站的憑證資訊(如下圖),確認顯示的有效期限是否如新憑證檔記錄的日期一樣,最後再將新的日期更新到管理用文件,工作就算完成了。

點選右上角的圖示就能展開憑證資訊
憑證資訊內容

另外由於政府有時候申請憑證作業時間較久,一般建議一個月前一定要完成請求檔送出申請。


雖然是第一次申請,不過參考專案文件的申請流程沒遇到什麼問題,照著執行產生請求檔就交給PM寄出去,七月初才送出的七月中旬就收到新憑證檔了,一切順利。
由於舊的憑證有效期還有一個多月,覺得現在換上太浪費,打算等到八月底再更換(事實上事後證明憑證的有效期限在申請完成的當下就確定了,當時還以為會從更換後正式啟用開始的一年算做有效期)。

八月底實際更換的時候發生了兩件事,差點就來不及完成作業了。


第一件是我以為記住產生keystore檔的密碼就行,但是新憑證檔卻沒辦法匯入使用相同金鑰密碼產生的新keystore檔之中,而我找不到當時產生的keystore檔,想著「雖然不太可能,我該不會申請之後就把原本的檔案刪掉了吧?」

當時使用的機器可能範圍有四十幾台,而且不確定在哪個資料夾下,一台一台尋找卻看不到,心裡越來越沉重。

最糟的情況就是再次申請,重跑一次流程,而要替換掉的九月中到期憑證很可能會來不及更新,要如何向客戶交代發生這種狀況也是個問題。

幸好之後找到當時的檔案,這些預想的情況都不用考慮了。找到檔案的方法是先找到了聊天室記錄之中,當時申請之後寄給PM的同時,我還多保留一份執行記錄。

google chat的聊天室訊息

在這執行記錄之中,包含使用的指令與所在資料夾,以及主機的名稱。

可以看到指令、資料夾,以及主機的名稱

憑著這些總算湊齊需要的檔案,避開重新申請的最糟情況了,以為可順利完成的時候碰到新的問題:現有文件沒有這項服務的設定方式。

經過幾天的嘗試和查資料總算如期完成最後的更換憑證工作,過程省略不提,雖然完成工作但是過程大有問題,有檢討和改進的必要。

最主要的目標有這些:
如何避免下次申請憑證發生找不到檔案,或者是不知道如何執行的情況?
如何確保由其他人執行也能順利完成,不用重新研究一次?


首先是參考文件必須補上不足的步驟說明。只要有明確的說明應該可以把申請的流程標準化,每次都執行一樣的,前人驗證過的步驟,就沒那麼容易出事了吧?

第二點是如何確保執行後產生的檔案不弄丟。
因為這次藉著留下的操作記錄解決問題,所以要把「留下操作記錄」當成執行流程的正式步驟之一嗎?或者是有其他方法,例如以後在特定一台機器上執行?這些都可以後續再討論。


隨著另一個憑證的有效期限將至,一邊想著改進方式一邊開始執行新的憑證申請流程。

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论