您好,登錄后才能下訂單哦!
今天遇到一個很少遇到的關于SSL證書申請、安裝問題,簡要記錄下來。
背景:SSL證書是private key + public key一起工作才能完成加密過程的。
大致來說就是client在handshake過程中先拿public key加密發送隨機session encryption key set以及其它關鍵信息,通過public key密碼的報文只能通過server端安裝的SSL certificate key pair中的private key才能進行解密。
如果private key與public key不匹配,那么首先是server端在安裝的時候就會提示密鑰對不匹配并拒絕安裝;其次,即便server允許安裝不正確的證書對,那么在實際運行中,因為server無法解密client發送的加密報文,也會造成SSL handshake過程失敗,進而導致session無法繼續。
But, 證書購買過程會涉及到域名驗證等等操作,可能在有的公司里面不會將此操作交由工程師完成,故作為運維人員的們即便明白SSL如何工作與申請、部署等等,也有可能等領導購買并生成SSL證書對。
那么拿到證書對的時候,應該如何驗證private key與public key是不是一對的呢?
可以通過openssl工具public key信息提取然后進行精準的對比,命令如下
1). 針對private key(以rsa為例)
openssl rsa -pubout -in cert.key
2). 針對public key
openssl x509 -pubkey -noout -in cert.crt
然后對比兩次輸出,如果是正常的話,那么-----BEGIN PUBLIC KEY-----與-----END PUBLIC KEY-----之間的內容應該是完全一致的。
再借助diff工具,那么不必自己斗雞眼對看長長的信息了
diff -eq <(openssl x509 -pubkey -noout -in cert.crt) <(openssl rsa -pubout -in cert.key)
如果是正常的話,上面的輸出應該是與下面類似
writing RSA key
這表明,除了writing RSA key這部分內容以外均相同
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。