我有一个奇怪的要求。我正在尝试与用C编写的服务器通信。基本上是这样的:
SslStream sslStream = new SslStream(client.GetStream(), true,
ValidateServerCertificate,
SelectLocalCertificate);
sslStream.AuthenticateAsServer(_pushCert);
我还有C语言的示例代码,它使用X509证书并连接到服务器。我有密码证书.pfx文件也一样。在
我想做的是设置某种shell脚本,它可以连接到套接字,传输一些字节并接收响应。(任何语言都可以,尽管我在看Python、Ruby或Perl)
我尝试使用Python中的SSL包装器,但是我得到一个错误,指出服务器/客户机无法使用它们的未知算法。在
我的Python代码示例:
^{pr2}$对于CERT,我尝试了几个不同的文件:.pfx,以及一些使用openssl从.pfx中提取的文件。在
我也尝试了许多不同的例子(为ssl.wrap_套接字). 我也不太熟悉这些联系。在
也许这里有人可以帮忙?在
谢谢!在
您可以简化SslStream构造函数调用:
此服务器发送\u pushCert,并且不希望客户端返回证书。服务器需要证书的私钥才能建立SSL连接。在
客户端只需要签署服务器证书的CA根证书(或者接受不可信证书的选项)。它需要在“可信根证书存储”中,或者以其他方式标识为受客户端包装器信任的。在
如果服务器证书是由一个中间CA证书签名的,而该证书本身是由根CA证书签名的,则客户端也需要该中间证书。可以由服务器发送,也可以已经在客户端。无论哪种方式,签名证书的整个链都必须在客户端手边,以验证链上的所有签名。中间CA证书不需要在受信任的根存储中。在
双方都不需要CA根或中间签名证书的私钥。在
但是,如果服务器希望客户端发送客户端证书,则必须使用更多参数调用authenticateaserver(clientCertificateRequired==true)。在这种情况下,客户机需要自己的证书和证书的私钥。服务器需要在其受信任存储中签名客户端证书的CA根。例如,客户机包装器将采用一个pfx文件,其中包含客户机证书和私钥。服务器不需要客户端的私钥。在
相关问题 更多 >
编程相关推荐