Linux 如何抓取 網站 目前的公開憑證

於 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) 的方式

  1. sudo apt install libnss3-tools
  2. certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n example.com.pem -i example.com.pem
  3. certutil -d sql:$HOME/.pki/nssdb -L # 可查看手動匯入的憑證
  4. certutil -D -d sql:$HOME/.pki/nssdb -n -.example.com # 將匯入的憑證移除
  5. certutil -D -d sql:$HOME/.pki/nssdb -n example.com.pem # 移除 nick 為 example.com.pem 的憑證
  6. certutil -d sql:$HOME/.pki/nssdb -L # 檢查

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料