У меня есть странное требование. Я пытаюсь связаться с сервером, написанным на C#. Похоже, что это в основном:Подключение к .NET Sslstream x.509 сокет с Python или Ruby или Perl
SslStream sslStream = new SslStream(client.GetStream(), true,
ValidateServerCertificate,
SelectLocalCertificate);
sslStream.AuthenticateAsServer(_pushCert);
У меня также есть пример кода в C#, который использует сертификат X509 и подключается к серверу. У меня также есть пароль для файла cert.pfx.
Что я хотел бы сделать, это настроить какой-то сценарий оболочки, который может подключаться к сокету, передавать несколько байтов и получать ответ. (любой язык на самом деле, хотя я смотрел на Python или Ruby или Perl)
Я пробовал использовать SSL-обертку из Python, но я получаю сообщение об ошибке, из-за чего их не известен алгоритм для взаимодействия сервера и клиента.
Пример моего кода Python:
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = ssl.wrap_socket(ss, ca_certs=CERT, ssl_version=ssl.PROTOCOL_SSLv23)
#Attempt connection to our server
try:
s.connect((HOST, PORT))
print s
except:
print 'ERROR Connecting'
sys.exit(0)
Для CERT я попробовал несколько различных filee: в .pfx, а некоторые извлечены из .pfx с помощью OpenSSL.
Я также попробовал много разных примеров (Аргументы для ssl.wrap_socket). Я тоже не знаком с этими связями.
Возможно, кто-то здесь может протянуть руку?
Спасибо!
Серверу необходим доступ к закрытому ключу сервера, а не к клиенту. – 2010-11-24 01:23:12