之前,有一個網域名稱使用了網上免費的 ssl 認證,然後想在該認證到期後更換為 Let's encrypt 的免費認證,便想查詢下該網域名稱 ssl 認證還剩多少天到期。
查詢認證到期時間的方法還是很簡單的,以下使用 sslforfree.com 這個網域名稱進行測試,下面簡單的記錄一下步驟。 方法一:直接瀏覽器上查看
該方法的前提是你的網域名稱已經指向了 網頁伺服器,在瀏覽器上可以正常訪問。
首先使用瀏覽器訪問你的網站網域名稱,然後單擊地址欄上面的鎖表徵圖進行查看:
上面使用的是firefox瀏覽器進行查看,其它瀏覽器應該查看的方法也基本一樣。 方法二:在服務端使用 Openssl 工具進行查看
由於我服務端是搭建在 Centos 上,所以用 xshell 或者 putty 工具登入後,進入認證目錄,使用 openssl 命令進行查看:
# cd /usr/ssl/cert
# openssl x509 -in signed.crt -noout -dates
上面改成你自己認證的所在目錄,認證名稱也改成你自己服務端上認證的名稱。 方法三:使用 php 代碼方法進行查看
如果你有多個可訪問的網域名稱,那麼使用代碼的方法進行查看就會容易很多,省得一個一個手動查看。下面貼上代碼:
/** * 擷取認證有效期間 */public function getValidity(){$domain = "sslforfree.com";$context = stream_context_create(array("ssl" => array("capture_peer_cert_chain" => true)));$socket = stream_socket_client("ssl://$domain:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);$context = stream_context_get_params($socket);foreach ($context["options"]["ssl"]["peer_certificate_chain"] as $value) {//使用openssl擴充解析認證,這裡使用x509認證驗證函式$cerInfo = openssl_x509_parse($value);if(strpos($cerInfo['name'],$domain)) {echo "start:".date("Y-m-d",$cerInfo['validFrom_time_t'])."<br/>";echo "end:".date("Y-m-d",$cerInfo['validTo_time_t']);}}}
輸出內容: start:2018-04-06
end:2018-07-05
上面的 $cerInfo 資訊參數很多,敢興趣的可以列印出來看下。
上面介紹了幾個查看 ssl 認證到期的方法,一般來說最常用的方法就是直接在瀏覽器上進行查看了,方便快捷。
文章來源:撒得一地,轉載請註明。