尝试将我的 jabber 客户端 (pidgin) 连接到带有自签名证书的 jabber 服务器时,出现“无法验证证书”错误。
由于无法告诉客户端不要验证链,我想获取证书链以便将其导入到那里。因此我使用:
openssl s_client -connect my.jabber.server.net:5222 </dev/null
Run Code Online (Sandbox Code Playgroud)
我得到以下答案:
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
> ---
Run Code Online (Sandbox Code Playgroud)
为什么我的 jabber 客户端没有获得证书链?
有一个应用程序在端口 10001 上运行,我想要一个反向代理来为它提供服务hostname/ds
。唯一的问题是有硬链接脚本/scripts/...
这意味着hostname/ds/
应让我到达localhost:10001/
并且hostname/scripts
应该首先将请求 url 重写为hostname/ds/scripts/*
.
我的配置:
<VirtualHost *:80>
RewriteEngine on
RewriteRule /^scripts/(.*)$ /ds/scripts/$1 [L,PT]
ProxyPass /ds/ http://127.0.0.1:10001/
ProxyPassReverse /ds/ http://127.0.0.1:10001/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
它不起作用:hostname/scripts/
获得 404。而hostname/ds/scripts/
通过应用程序获得正确答案。
根据/sf/ask/630235091/ PT
应该可以工作。我究竟做错了什么?
我希望curl能够与goDaddy签名的网站一起使用:如果我打电话
curl mypage.com/bla
Run Code Online (Sandbox Code Playgroud)
我收到证书验证错误。我尝试使用以下代码片段获取 ca 证书:
echo | openssl s_client -connect mysite.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pem
Run Code Online (Sandbox Code Playgroud)
然后打电话
curl mypage.com/bla --cacert cert.pem
Run Code Online (Sandbox Code Playgroud)
这也导致了验证错误。我检查了证书日期和主题,一切似乎都很好?
我缺少什么?我可能需要整个链条吗?如果是,是否有命令可以获取全部内容?