У меня странное требование.Я пытаюсь связаться с сервером, написанным на C #.В основном это выглядит так:
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 я пробовал несколько разных файлов: .pfx, а некоторые извлекаются из .pfx с помощью openssl.
Я также пробовал много разных примеров (Аргументы для ssl.wrap_socket).Я не очень знаком с этими связями.
Может быть, кто-то здесь мог бы протянуть руку?
Спасибо!