在本文中,我將解釋如何在我們最新的 Ubuntu 系統上安裝 mkcert,這是一個零配置工具。 Mkcert 是一個簡單的工具,可用於製作本地可信證書。 它不需要任何配置。 使用來自真實證書頒發機構的證書總是很危險或不可能的 localhost or 127.0.0.1
. 即使使用自簽名證書也同樣不推薦,因為它們會導致信任錯誤。
Mkcert 通過管理自己的 CA 為我們提供了最佳解決方案。 這將自動在系統根存儲中創建和安裝本地 CA,並生成本地信任的證書。 讓我們看看安裝 mkcert 的步驟。
先決條件
- 配置良好的服務器,具有 Go 1.10+ 和 root 權限。
- 證書數據庫工具 (Certutil)
安裝 Golang
Go 是一種通用系統編程語言,我們可以使用它構建各種應用程序。 Go 語言及其工具包在我們的默認存儲庫中可用。 我們可以通過運行這個命令在 Ubuntu 18.04 中安裝 Go 語言。
#apt install golang
# go version
go version go1.10.1 linux/amd64
現在我們可以創建一個文件“/etc/profile.d/goenv.sh”來在服務器範圍內設置Go環境變量,如下所示:
# cat /etc/profile.d/goenv.sh
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# source /etc/profile.d/goenv.sh
安裝證書
證書數據庫工具或 Certutil 是一個簡單的命令行實用程序,可以創建/修改證書及其密鑰數據庫。 它可以專門用於列出、生成、修改或刪除證書。 它甚至可以用於創建或更改密碼,生成新的公鑰/私鑰對。 此外,它顯示密鑰數據庫的內容或刪除密鑰數據庫中的密鑰對。 在我們的 Ubuntu 服務器中,我們可以通過運行以下命令來安裝它:
#apt install libnss3-tools
安裝 Mkcert
根據我們的操作系統平台和要求,我們需要下載源文件 mkcert 工具 這裡。
#wget https://github.com/FiloSottile/mkcert/archive/v1.0.0.tar.gz
# cd mkcert-1.0.0/
#make
現在我們可以將這個 mkcert 二進製文件從安裝文件夾複製到 /usr/bin/
文件夾以在服務器範圍內使用它。
#cd mkcert-1.0.0/bin/
#cp mkcert /usr/bin/
最後,我們可以使用以下命令生成本地 CA 以生成證書:
# mkcert -install
Created a new local CA at "/root/.local/share/mkcert" ?
The local CA is now installed in the system trust store! ⚡️
出根 CA 將被創建並保存在路徑下 /root/.local/share/mkcert
. 通常,CA 證書及其密鑰存儲在用戶主目錄中的應用程序數據文件夾中。 也可以通過命令獲取位置 mkcert -CAROOT
.
# mkcert -CAROOT
/root/.local/share/mkcert
現在我們可以根據需要使用這個工俱生成本地可信的開發證書:
# mkcert example.com '*.example.org' myapp.dev localhost 127.0.0.1 ::1
Using the local CA at "/root/.local/share/mkcert" ✨
Created a new certificate valid for the following names ?
- "example.com"
- "*.example.org"
- "myapp.dev"
- "localhost"
- "127.0.0.1"
- "::1"
The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
正如此命令執行中所報告的,生成的本地可信證書保存在我們運行此命令的路徑中。 就我而言,我的證書是在 /root 本身創建的。 我只是將這些文件移動到 /etc/ssl
文件夾如下:
#cp /root/example.com+5.pem /etc/ssl/certs/
#cp /root/example.com+5-key.pem /etc/ssl/private/
在 Apache2 上啟用證書
我們的下一步是安裝我們的 Web 服務器並啟用 SSL 以使用此本地受信任的開發證書。 我安裝了 Apache2 並啟用了 SSL 以利用它。
#apt install apache2
#systemctl enable apache2
#systemctl start apache2
其次,編輯位於以下位置的默認 SSL 文件 /etc/apache2/sites-available/default-ssl.conf
使用我們本地生成的 SSL 證書和密鑰詳細信息如下:
SSLCertificateFile /etc/ssl/certs/example.com+5.pem
SSLCertificateKeyFile /etc/ssl/private/example.com+5-key.pem
現在您可以啟用 SSL 模塊並重新啟動 Apache2 服務以使這些更改生效。
# a2enmod ssl
# a2ensite default-ssl.conf
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
#systemctl reload apache2
#systemctl restart apache2
最後,我們可以嘗試瀏覽 https://localhost 以確認它是否正常工作。
另請閱讀:
- 如何在 Ubuntu 18.04 上安裝 Let’s Encrypt SSL 證書
你好! 我們已準備好使用本地受信任的證書。 Mkcert 僅用於開發目的,不推薦用於生產,因此不應在最終用戶的機器上使用它,出於安全原因,您不應導出或共享 rootCA-key.pem。 我希望這篇文章對你有用和有用! 請就此發表您的寶貴意見和建議。