Ssl

從 jabber 伺服器獲取 SSL 證書鏈

  • October 13, 2021

嘗試使用自簽名證書將我的 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

使用opensslv1.1.0+,您還可以使用-xmpphost <domain>標誌檢查自定義域,或使用v1.1.1+中的選項別名。-nameopenssl

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

引用自:https://serverfault.com/questions/659442