Назад | Перейти на главную страницу

Создание сертификатов SSL

Мне было интересно, есть ли у кого-нибудь идеи о том, как сгенерировать подписанный сертификат и ключ CA с помощью openssl? Я нашел этот сайт (http://dev.mysql.com/doc/refman/5.1/en/secure-create-certs.html) для генерации сертификатов клиента и сервера для сервера mysql, но примером является самоподписанный сертификат. Я использую следующую команду для запуска сервера и клиента с использованием openssl и сгенерированных сертификатов и ключей:

openssl s_server -accept 6502 -cert server-cert.pem -key server-key.pem -CAfile ca-cert.pem -www

openssl s_client -connect 192.168.1.92:6502 -cert client-cert.pem -key client-key.pem -CAfile ca-cert.pem

Я получаю сообщение об ошибке «Проверить код возврата: 18 (самоподписанный сертификат)».

Павел

Создать корневой центр сертификации (самоподписанный):

Давайте подробно рассмотрим варианты:

  • x509 указывает, что требуется сертификат, а не просто запрос сертификата (см. ниже).
  • дней 30000 устанавливает срок действия сертификата через 30000 дней. Вы можете продлить этот период. Запишите дату истечения срока годности, чтобы вы могли его продлить при необходимости!
  • sha1 указывает, что следует использовать шифрование SHA1. rsa: 2048 устанавливает ключ как 2048-битный RSA.
  • узлы не указывает кодовую фразу.
  • keyout и -out указать, где хранить сертификат и ключ. Ключ должен быть доступен для чтения только root; сертификат может быть доступен для чтения всем и должен быть доступен для чтения пользователю, от имени которого работает Apache.
  • subj Флаг устанавливает название компании, название отдела и адрес веб-сайта. Если вы не укажете их, вам будет предложено ввести их. CN должен совпадать с адресом вашего веб-сайта, иначе сертификат не будет совпадать, и при подключении пользователи получат предупреждение. Убедитесь, что вы не используете пароль для проверки.

Создать это :

sudo openssl req -x509 -nodes -newkey rsa:2048 -sha1 -keyout rootkey.key -out rootca.crt -passin pass:root -days 30000 -subj "/C=DU/ST=Dubai/L=TownCenter/O=AmesCom/CN=AmesCom Int" -config openssl.cnf.my

Зашифруйте ключ вручную:

ключ не зашифрован из-за опции -nodes, поэтому мы шифруем его вручную:

sudo cp rootkey.key rootkey.key.org

sudo openssl rsa -in rootkey.key.org -out rootkey.key

Попробуй это :

для немедленного тестирования вы можете воспользоваться двумя способами:

openssl x509 -text -noout -in rootca.crt 

или просмотрите его содержимое в браузере:

cp rootca.crt /var/www/html/

в браузере спросите адрес:

http://yourserverdomain/rootca.crt

Теперь вы можете создавать запросы сертификатов и подписывать их этим самозаверяющим сертификатом.

В прошлом году я написал сценарий, чтобы сделать все это за меня - создать поддельный ЦС и подписать сертификат с этим ЦС. Убедитесь, что вы добавили содержимое ca.crt в окончательный файл PEM, если вам нужно сохранить цепочку нетронутой.

http://tacticalvim.wordpress.com/2010/06/20/sslkeygen-sh-complete-ssl-cert-creation-helper-script/

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

  • Вы можете купить подписанные сертификаты у коммерческих поставщиков.
  • Ты можешь использовать OpenCA
  • Вы можете создать свой собственный центр сертификации
  • Вы можете использовать самозаверяющие сертификаты, как показано здесь: http://www.stunnel.org/?page=howto

Я решил это некоторое время назад, но вот ответ.

Мне удалось создать свои собственные сертификаты, используя следующий веб-сайт: НастройкаApache2ForSSLTLSMutualAuthentication

Я тестировал openssl между двумя ПК и тестировал по радиоволнам между модемом Sierra Wireless и сервером openssl.