Это оказалось прямо вперед. Кредит переходит на 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
и нажмите ввод. Теперь вы находитесь в приглашении 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
он использует сообщение и ключ для создания подписи.
сообщение + ключ => подпись
проверить
Вам понадобится сертификат сайта. Это выглядит так:
-----BEGIN CERTIFICATE-----
(bunch of base64)==
-----END CERTIFICATE-----
Сохраните его в example.crt
. Имя не имеет значения.
Во-первых, вам нужно будет создать открытый ключ из файла сертификата (example.crt
) следующим образом:
x509 -in example.crt -pubkey -noout -out example.pub
При этом используется сертификат для создания открытого ключа.
сертификат => открытый ключ
Затем вы можете проверить сообщение следующим образом:
dgst -sha256 -verify example.pub -signature signature.txt -out result.txt message.txt
Он использует открытый ключ и подпись для проверки сообщения, помещая результат проверки в файл result.txt
.
открытый ключ + подпись + сообщение => результат
result.txt
будет содержать "Подтверждено ОК" или "Ошибка проверки".
Linux
Инструкции в ближайшее время. Я думаю, что это очень похоже, за исключением незначительного синтаксиса.