筆記:使用mkcert建立本機https測試環境
因為開發一些套件要在Ubuntu 20.04本機上測試需要使用https建立測試環境。
事前套件安裝
sudo apt-get install wget libnss3-tools
安裝mkcert
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
sudo mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert
sudo chmod +x /usr/bin/mkcert
確認執行檔擺放正確
mkcert --version
如果沒有辦法直接用mkcert指令
安裝到瀏覽器
mkcert -install
用後請重啟你的瀏覽器restart your browser
建立https憑證
建立domain name為localhost, ip為127.0.0.1的憑證
mkdir -p certs && mkcert -key-file ./certs/key.pem -cert-file ./certs/cert.pem localhost 127.0.0.1
憑證內容可以使用 openssl 指令來確認產生出的憑證適用的網域
openssl x509 -in ./certs/cert.pem -text | grep DNS
如果你是要模擬線上某個網域,可以透過在改/etc/hosts,多加入一行本機IP(127.0.0.1) 空格 網域名稱(不包含http和路徑的那些部份)
舉例 sudo sh -c "echo '127.0.0.1 my-host.test.com' >> /etc/hosts"
hosts改好之後用ping看是否會導向本機 ping my-host.test.com
設定HTTP server
將憑證設定到你的http server,以centos的apache來說應該是替換掉下面這兩個路徑
- /etc/pki/tls/certs/localhost.crt
- /etc/pki/tls/private/localhost.key
參考: https://0xzx.com/zh-tw/2021081700281668036.html
留言
1. mkcert安裝到client機器(目的是將root ca憑證會擺到瀏覽器/系統ca目錄裡頭)
2. 用client產生https憑證,ip就是你要連線的server ip,和你想要用的domain
3. 因為dns沒有註冊domain所以你就改client的host檔案,讓它走server ip
4. 把憑證放到server的設定檔裡頭
這樣就完成了