1

Более конкретно, могу ли я заставить их подписать текстовую строку своим личным сертификатом x509, а затем я могу подтвердить это с помощью общедоступного сертификата, используемого на соответствующем веб-сайте? Возможно, я мог бы предоставить им неподписанный сертификат для подписи или что-то в этом роде.

Заранее спасибо :)

3 ответа3

2

Да, как вы и предлагали, вы могли бы отправить им строку байтов (в этом контексте мы могли бы назвать это текстом запроса), чтобы они зашифровали его с помощью закрытого ключа SSL/TLS своего сервера и отправили обратно зашифрованный текст, а затем вы можете проверить его расшифровав его с помощью открытого ключа из сертификата сервера SSL/TLS.

Или вы можете сгенерировать строку байтов, зашифровать ее с помощью открытого ключа из своего сертификата сервера, отправить его им, сделать так, чтобы они расшифровали его с помощью закрытого ключа своего сервера, и попросили вернуть вам исходный открытый текст.

Обратите внимание, что относительно немногие люди знают, как делать такие вещи с помощью своего закрытого ключа SSL, поэтому не удивляйтесь, если вам придется предоставить им пошаговые инструкции по поиску их закрытого ключа и шифрованию или расшифровке вашего вызов.

0

Вы можете попросить их отправить вам электронное письмо с этого домена или сделать whois (CLI или использовать https://www.whois.net/) и посмотреть, есть ли их контакт в списке, или вы можете попросить их загрузить страницу подтверждения на свой сайт. сайт. url/yeaIownthis.html с каким-то паролем или чем-то еще.

0

Вот метод, использующий M2Crypto и python:

f = open(CERT_FILE)
cert_buffer = f.read()
f.close()

from M2Crypto import RSA, X509 
cert = X509.load_cert_string(cert_<wbr>buffer, X509.FORMAT_PEM) 
pub_key = cert.get_pubkey() 
rsa_key = pub_key.get_rsa() 
cipher = rsa_key.public_encrypt('<wbr>plaintext', RSA.pkcs1_padding)

print cipher

ReadRSA = RSA.load_key(KEY_FILE)
try:
    plaintext = ReadRSA.private_decrypt (cipher, RSA.pkcs1_padding)
except:
    print "Error: wrong key?"
    plaintext = ""

print plaintext

Выдержка взята из этой статьи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .