从 jabber 服务器获取 SSL 证书链

从 jabber 服务器获取 SSL 证书链

尝试将我的 jabber 客户端(pidgin)连接到具有自签名证书的 jabber 服务器时,出现“无法验证证书”错误。

由于无法告诉客户端不要验证链,因此我希望获取证书链以便将其导入那里。因此我使用:

openssl s_client -connect my.jabber.server.net:5222 </dev/null

我得到以下答案:

openssl s_client-连接 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 客户端可以获取证书链,但我却获取不到?

答案1

解决方案是:Jabber 需要 starttls:

openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp

返回证书

答案2

正如前面的回答中提到的,Jabber/XMPP 需要-starttls

客户端到服务器 (c2s) 证书为了my.jabber.server.net

openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp

为了进一步解释这个答案,有两种类型的连接:

  • 普通客户端登录:-starttls xmpp,默认端口 5222
  • 服务器之间的连接:-starttls xmpp-server,默认端口5269

服务器到服务器 (s2s) 证书为了my.jabber.server.net

openssl s_client -connect my.jabber.server.net:5269 </dev/null -starttls xmpp-server

使用opensslv1.1.0+,您还可以检查自定义域,使用-xmpphost <domain>标记,或者使用选项别名-nameopensslv1.1.1+ 中。

自定义域的客户端到服务器 (c2s) 证书 other.example.org由主办my.jabber.server.net

openssl s_client -connect my.jabber.server.net:5222 </dev/null -starttls xmpp -xmpphost other.example.org

自定义域的服务器到服务器 (s2s) 证书 other.example.org由主办my.jabber.server.net

openssl s_client -connect my.jabber.server.net:5269 </dev/null -starttls xmpp-server -xmpphost other.example.org

答案3

简单的方法,

  1. 关闭 皮钦语
  2. 找到您的证书文件夹 ( Win­dows: %appdata%\.purple)(Linux:/home/<Username>/.purple/certificates/x509/tls_peers
  3. 删除证书文件夹中的所有内容。
  4. 重新启动 pidgin,最终您将获得一个可用的新证书。

PS:不熟悉的 Windows 用户%app­data%只需%appdata%\.purple在地址栏中输入并按回车键即可。

答案4

使用以下命令生成自签名证书对我有用:

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout example.key -out example.crt -subj /CN=example.com -addext subjectAltName=DNS:example.com,DNS:example.net,IP:10.0.0.1

(找到命令这里

相关内容