網頁應用程式Localhost開發環境多數仍使用HTTP進行測試,可能測試不出在HTTPS才會出現的臭蟲,而Mkcert這個簡單的工具則能解決這樣的問題,能產生有效TLS憑證,適用於包括Localhost的任何主機域名與IP。

多數網站開始採用HTTPS協定,以加密技術防止攻擊者窺探隱私或是加工網頁內容。HTTPS所需要TLS憑證,由於ACME協定與Let's Encrypt提供方便的部署,大幅降低採用的困難度,不過,Mkcert的作者,同時也是Google Go團隊工程師的Filippo Valsorda提到,在開發端仍然主要使用HTTP,因為沒有可用於Localhost的全域有效HTTPS,且隨著越來越多瀏覽器功能僅支援安全來源,而逐漸成為問題。

僅使用HTTP進行測試,可能會遺漏任何可能造成HTTPS網站故障的混合內容問題。而Mkcert可以讓使用HTTPS開發跟使用HTTPS進行部署一樣簡單,是一個可以用來製作Localhost可信任憑證的工具,而且不需要額外配置,適用於任何網域名稱或是IP位置,包括了只能本機存取的Localhost。

Mkcert並非生成一個自我簽署的憑證,而是使用私人擁有CA簽署的憑證,當開發者安裝Mkcert時,電腦會自動被設定為可信任,因此當瀏覽器載入由Mkcert執行個體產生的憑證時,將會在網址前顯示安全鎖的圖示。

官方提到,與OpenSSL不同的是,Mkcert不會強迫開發者為每個憑證進行額外的設置,在預設情況下就能良好的運作,Mkcert提到,之所以Mkcert可以保持使用簡單,是因為Mkcert為一個開發工具,僅為開發工作設計。當然Mkcert也能適用於相近的使用案例,像是充當微服務的CA基礎架構,這雖然並非Mkcert專案的主要目的,但是靈活的應用也能幫助建構系統。

Mkcert未來還會加入ACME伺服器的功能。開發者在生產環境使用TLS憑證,則是通過ACME協定使用Let's Encrypt,官方認為,開發的環境應該盡可能接近生產,因此Mkcert將能充當像是Let's Encrypt這樣的ACME伺服器,提供不需要驗證的Localhost可信憑證,將來應用程式從開發轉移到生產環境,所需要更改的就只有ACME端點的網址。

Mkcert現已經進入穩定階段,開發者已經可以從多數的套件管理器中安裝,或是使用預建置二元檔案。Mkcert支援macOS、Linux、和Windows三大作業系統,另外也支援Firefox、Chrome和Java,在行動裝置也只需要幾個手動步驟就能執行。


Advertisement

更多 iThome相關內容