Это оказалось прямо вперед. Кредит переходит на https://stackoverflow.com/a/18359743/1045881 . Я просто переписал это для новичков, как я.
Допустим, сайт example.com
Windows
Получение вашего сертификата
Если вы на стороне подписи, вы контролируете свой сертификат. Вы можете следовать хорошим инструкциям по адресу: https://www.thawte.nl/en/support/manuals/microsoft/all+windows+servers/export+private+key+or+certificate/
Это даст вам ваш личный ключ и сертификат, необходимый для следующих шагов.
Если вы только на стороне проверки, вы можете щелкнуть по замку рядом с веб-адресом в вашем браузере, просмотреть сертификат и экспортировать его base64 в файл crt или cer. Имя файла не важно, но domain.crt
это хорошее имя.
Установите openssl
Установите openssl. Я использовал https://indy.fulgan.com/SSL/, на который меня ссылались https://wiki.openssl.org/index.php/Binaries . Распакуйте его в папку установки openssl. Я назову это папкой openssl.
Запустите openssl
просто перейдите в папку openssl, введите openssl
и нажмите Enter. Теперь вы в openssl
подсказке.
Знак
Вам нужен ваш личный ключ. Это выглядит так:
-----BEGIN RSA PRIVATE KEY----- (bunch of base64 text)== -----END RSA PRIVATE KEY-----
Сохраните это, например example.key
. Но имя файла не важно, просто полезно.
Затем сохраните сообщение в файл с именем message.txt
. Это может быть пустым. И имя файла не важно.
Затем в вашей папке openssl (где вы распаковали файлы), запустите
dgst -sha256 -sign example.key -out signature.txt message.txt
он использует сообщение и ключ для создания подписи.
message+ key=>signature
проверить
Вам понадобится сертификат сайта. Это выглядит так:
-----BEGIN CERTIFICATE----- (bunch of base64)== -----END CERTIFICATE-----
Сохраните это в example.crt
. Имя не имеет значения.
Во-первых, вам нужно создать открытый ключ из файла сертификата ( example.crt
) следующим образом:
x509 -in example.crt -pubkey -noout -out example.pub
При этом используется сертификат для создания открытого ключа.
certificate => public key
Затем вы можете проверить сообщение следующим образом:
dgst -sha256 -verify example.pub -signature signature.txt -out result.txt message.txt
Он использует открытый ключ и подпись для проверки сообщения, помещая результат проверки в файл result.txt
.
public key+ signature+ message=>result
result.txt
будет содержать «Подтверждено ОК» или «Ошибка проверки».
Linux
Инструкции в ближайшее время. Я думаю, что это очень похоже, за исключением незначительного синтаксиса.