Ssl
從 jabber 伺服器獲取 SSL 證書鏈
嘗試使用自簽名證書將我的 jabber 客戶端(pidgin)連接到 jabber 伺服器,我收到“無法驗證證書”錯誤。
由於無法告訴客戶不要驗證鏈,我想獲取證書鏈以便將其導入那裡。因此我使用:
openssl s_client -connect my.jabber.server.net:5222 </dev/null
我得到以下答案:
openssl s_client -connect cup1.sprachdienst.fraunhofer.de:5222
> CONNECTED(00000003) 140472458057376:error:140790E5:SSL > routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177: > --- no peer certificate available > --- No client certificate CA names sent > --- SSL handshake has read 0 bytes and written 213 bytes > --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE > ---
為什麼我沒有得到證書鏈而我的 jabber 客戶端有?
解決方案是:Jabber 需要 starttls:
openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp
返回證書
如前一個答案所述,Jabber/XMPP 需要
-starttls
.
my.jabber.server.net
.的客戶端到伺服器 (c2s) 證書。openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp
為了擴展該答案,有兩種類型的連接:
- 普通客戶端登錄:
-starttls xmpp
,預設埠 5222- 伺服器之間的連接:
-starttls xmpp-server
,預設埠 5269
my.jabber.server.net
.伺服器到伺服器 (s2s) 證書。openssl s_client -connect my.jabber.server.net:5269 </dev/null -starttls xmpp-server
使用
openssl
v1.1.0+,您還可以使用-xmpphost <domain>
標誌檢查自定義域,或使用v1.1.1+中的選項別名。-name
openssl
other.example.org
託管的自定義域的客戶端到伺服器 (c2s) 證書my.jabber.server.net
:openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp -xmpphost other.example.org
other.example.org
託管的自定義域的伺服器到伺服器 (s2s) 證書my.jabber.server.net
:openssl s_client -connect my.jabber.server.net:5269 </dev/null -starttls xmpp-server -xmpphost other.example.org