perl IO::Socket::SSL连接尝试失败
在我启动io::socket::ssl tls连接时 我的例子是与谷歌和facebook合作,但与SIPTLS服务器不合作 这就是sip-tls服务器 我无法跳过证书 我在setart conncet上犯了这个错误 SSL连接尝试失败错误:14090086:SSL例程:ssl3_获取_服务器_证书:证书验证在dd.pl第14行失败perl IO::Socket::SSL连接尝试失败,perl,sockets,ssl,Perl,Sockets,Ssl,在我启动io::socket::ssl tls连接时 我的例子是与谷歌和facebook合作,但与SIPTLS服务器不合作 这就是sip-tls服务器 我无法跳过证书 我在setart conncet上犯了这个错误 SSL连接尝试失败错误:14090086:SSL例程:ssl3_获取_服务器_证书:证书验证在dd.pl第14行失败 您在这里使用的是自签名证书。默认情况下,IO::Socket::SSL检查证书是否可信任,并且除非客户端明确知道,否则自签名证书是否不可信任。虽然您可以简单地禁用证书
您在这里使用的是自签名证书。默认情况下,IO::Socket::SSL检查证书是否可信任,并且除非客户端明确知道,否则自签名证书是否不可信任。虽然您可以简单地禁用证书验证,但这将基本禁用任何有意义的安全性,因为中间攻击者中的某些人可以在没有客户端注意到的情况下模拟真实服务器。 最好的方法可能是获得一个由公众信任的CA签名的证书,比如让我们加密。如果您坚持使用自签名证书,尽管您可能通过使用
SSL\u fingerprint
选项特别信任此证书
要获取必要的证书指纹,请执行以下操作:
$ echo | openssl s_client -connect 2.50.44.55:5061 |\
openssl x509 -noout -fingerprint
...
SHA1 Fingerprint=CE:68:62:68:30:EA:F4:64:82:F5:5C:B7:FB:F4:DA:1B:77:88:9F:DD
然后将此指纹与IO::Socket::SSL一起使用
my $sock = IO::Socket::SSL->new(
PeerAddr => '2.50.44.55:5061',
SSL_fingerprint => 'sha1$CE68626830EAF46482F55CB7FBF4DA1B77889FDD'
) or die $SSL_ERROR;
请访问以下内容。@PolarBear我的示例是与google和facebook合作,但与sip tls服务器不合作您的sip服务器是否具有有效的SSL证书?@PolarBear服务器它与其他c#程序合作。。但不能使用我的perl套接字程序perl尝试验证服务器SSL证书,由于某种原因验证失败。如果您有自签名证书,则需要将其提供给perl脚本,否则它将无法使用它。如果您从受信任的CA获取证书,则问题不应自行显现。
my $sock = IO::Socket::SSL->new(
PeerAddr => '2.50.44.55:5061',
SSL_fingerprint => 'sha1$CE68626830EAF46482F55CB7FBF4DA1B77889FDD'
) or die $SSL_ERROR;