證書鏈過期導致大部分服務不可用


故障描述

  在我們的生產環境中,我們制作了一個健康檢查頁面,並通過腳本去監控他的健康狀態,可是在前天(2020-5-30 周六)下午 18:50 左右的時候收到告警健康檢查頁面故障,等我登錄服務器排查故障的時候發現是curl命令報錯,報錯的內容為:
[root@ip-10-0-10-100 ~]# curl -v  https://xxxxxx.cn/hcaextension/hcmini/v1/healthyCheck
*   Trying 54.223.xxx.xx...
* TCP_NODELAY set
* Connected to xxxxxxxx.cn (54.223.xx.xx) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, certificate expired (557):
* SSL certificate problem: certificate has expired
* Closing connection 0
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html
 
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

 

  在通過測試,發現AWS EC2為:Linux 、Linux2 的操作系統不能夠正常使用,在AWS EC2 -Centos 7.7、阿里雲以及物理機房中測試是沒有問題的。

分析過程

  經過查看報錯信息,發現是由於SSL握手的時候證書驗證錯誤導致的,以下是排查的步驟:
1. Curl 的-k參數可以忽略SLL證書的驗證,可以添加-k參數臨時避免遇到此錯誤,
如下是我的測試,發現可以正常的訪問頁面:
curl -k https://xxxxxx.cn/hcaextension/hcmini/v1/healthyCheck
{"code":0,"msg":"成功","messageid":"29250cf5-176b-4993-a724-e5c9d7cc2ace"}
2. 通過進一步分析證書“xxxxx.cn”,我們發現證書鏈是存在問題的,我們的證書自身並沒有過期,但是一個證書鏈證書過期了,我們提取了證書鏈的信息,您可以參考附件的信息。
 

因為我們的證書是上傳在了AWS的ALB 中,在我打算刪除過期的證書鏈的時候問題來了......

AWS的ALB 無法修改編輯、更新、下載之前上傳的證書,最后聯系aws的工作人員得到了如下回復

感謝您聯系我們,我們並沒有權限來為您刪除或者調整IAM中證書的信息。目前我們了解到您證書的信息已經丟失了,您可以通過如下CLI命令來取回證書、證書鏈 (如果已上傳一個) 和有關證書的元數據: aws iam get-server-certificate --server-certificate-name xxxx.cn 但是無法從 IAM 下載檢索私有密鑰,所以您是無法完整的從下載所有的證書信息。刪除過期證書鏈的建議也是一種嘗試解決方案,也可能存在將過期的證書鏈刪除后,由於證書鏈不完整導致的其他問題。您目前已經丟了證書的信息,您的證書應該是從第三方廠商申請的,鑒於目前的情況,我們更建議您來聯系您申請證書的廠商,說明您的情況,嘗試可否找到合適找回證書信息以及處理證書鏈過期的方案。 

解決方法

1、應急方法:

更新證書鏈,將過期的證書鏈信息去除,嘗試是否可以正常訪問:
https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_server-certs.html
2、重新上傳更新證書
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM