於 Linux CLI 想要抓取網站目前的公開憑證,就可以手動將此公開憑證匯入瀏覽器中,方便開發環境操作。
Linux 如何抓取 網站 目前的公開憑證
此憑證都會設定在 Nginx、Apache 等 Web Server,只要抓下來,就可以於瀏覽器設定,或者有 CLI 工具可以匯入。
下面兩種方式皆可:
- echo -n | openssl s_client -connect {HOSTNAME}:{PORT} -showcerts
- openssl s_client -connect {HOSTNAME}:{PORT} -showcerts </dev/null 2>/dev/null
不過上述的方式,除了憑證之外,還會有很多資訊一起列出來,下面列出要抓出憑證的方式,可以使用下面粗體的方式即可:
- echo -n | openssl s_client -connect feebee.com.tw:443 -showcerts | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' # 會取出兩張憑證
- openssl s_client -connect feebee.com.tw:443 -showcerts </dev/null 2>/dev/null | openssl x509 -text | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' # 取出一張憑證,用這張即可
總結取出憑證的兩種方法
- OpenSSL
- openssl s_client -connect example.com:443 -showcerts </dev/null 2>/dev/null | openssl x509 -text | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > example.com.pem
- gnutls-cli (apt-get install gnutls-bin)
- gnutls-cli --print-cert example.com < /dev/null > example.com.pem
將 pem 憑證匯入瀏覽器(Chrome) 的方式
- sudo apt install libnss3-tools
- certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n example.com.pem -i example.com.pem
- certutil -d sql:$HOME/.pki/nssdb -L # 可查看手動匯入的憑證
- certutil -D -d sql:$HOME/.pki/nssdb -n -.example.com # 將匯入的憑證移除
- certutil -D -d sql:$HOME/.pki/nssdb -n example.com.pem # 移除 nick 為 example.com.pem 的憑證
- certutil -d sql:$HOME/.pki/nssdb -L # 檢查