尝试使用自签名证书将我的 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:
返回证书
如前一个答案所述,Jabber/XMPP 需要
-starttls
.my.jabber.server.net
.的客户端到服务器 (c2s) 证书。为了扩展该答案,有两种类型的连接:
-starttls xmpp
,默认端口 5222-starttls xmpp-server
,默认端口 5269my.jabber.server.net
.服务器到服务器 (s2s) 证书。使用
openssl
v1.1.0+,您还可以使用-xmpphost <domain>
标志检查自定义域,或使用v1.1.1+中的选项别名。-name
openssl
other.example.org
托管的自定义域的客户端到服务器 (c2s) 证书my.jabber.server.net
:other.example.org
托管的自定义域的服务器到服务器 (s2s) 证书my.jabber.server.net
:简单的方法,
Windows: %appdata%\.purple
) (Linux:/home/<Username>/.purple/certificates/x509/tls_peers
)PS:不熟悉的Windows用户
%appdata%
只需%appdata%\.purple
在地址栏中输入并回车即可。使用以下命令生成自签名证书对我有用:
(命令在这里找到)