1

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

Как я могу подписать сообщение, используя мой сертификат SSL-сайта?

1 ответ1

1

Это оказалось прямо вперед. Кредит переходит на 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

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

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