Получение сертификата SSL от любого из основных центров сертификации (ЦС) может стоить 100 долларов и выше. Добавьте к этому новостные статьи, которые, кажется, указывают на то, что не всем установленным центрам сертификации можно доверять 100% времени, и вы можете решить обойти неопределенность и снизить затраты, став своим собственным центром сертификации.
Шаги
Часть 1 из 4: Создание сертификата ЦС
Шаг 1. Сгенерируйте закрытый ключ вашего CA, введя следующую команду
-
openssl genrsa -des3 -out server. CA.key 2048
-
Варианты объяснены
- openssl - название программы
- genrsa - создает новый закрытый ключ
- -des3 - зашифровать ключ с помощью шифра DES
- -out server. CA.key - имя вашего нового ключа
- 2048 - длина закрытого ключа в битах (см. Предупреждения)
- Храните этот сертификат и пароль в надежном месте.
Шаг 2. Создайте запрос на подпись сертификата
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
Объяснение вариантов:
- req - создает запрос на подпись
- -verbose - показывает подробную информацию о создаваемом запросе (необязательно)
- -new - создает новый запрос
- -key server. CA.key - закрытый ключ, который вы только что создали.
- -out server. CA.csr - имя файла запроса подписи, который вы создаете
- sha256 - Алгоритм шифрования, используемый для подписи запросов (если вы не знаете, что это такое, не меняйте его. Вам следует изменять это только в том случае, если вы знаете, что делаете)
Шаг 3. Максимально заполните информацию
-
Название страны (двухбуквенный код) [Австралия]:
нас
-
Название штата или провинции (полное название) [Some-State]:
CA
-
Название населенного пункта (например, город) :
Силиконовая Долина
-
Название организации (например, компания) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Название организационной единицы (например, раздел) :
-
Общее имя (например, полное доменное имя сервера или ВАШЕ имя) :
-
Адрес электронной почты :
Шаг 4. Самостоятельная подпись сертификата:
-
openssl ca -extensions v3_ca -out server. CA-signed.crt -keyfile server. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles server. CA.csr
-
Объяснение вариантов:
- ca - загружает модуль центра сертификации
- -extension v3_ca - загружает расширение v3_ca, необходимое для использования в современных браузерах.
- -out server. CA-signed.crt - Имя вашего нового подписанного ключа
- -keyfile server. CA.key - закрытый ключ, который вы создали на шаге 1
- -verbose - показывает подробную информацию о создаваемом запросе (необязательно)
- -selfsign - сообщает openssl, что вы используете тот же ключ для подписи запроса.
- -md sha256 - алгоритм шифрования сообщения. (Если вы не знаете, что это такое, не меняйте это. Изменяйте это только в том случае, если вы знаете, что делаете)
- -enddate 330630235959Z - Дата окончания сертификата. Обозначение - ГГММДДЧЧММССЗ, где Z - это время по Гринвичу, иногда известное как «зулусское» время.
- -infiles server. CA.csr - файл запроса подписи, который вы создали на шаге выше.
Шаг 5. Проверьте свой сертификат CA
- openssl x509 -noout -text -in server. CA.crt
-
Объяснение вариантов:
- x509 - загружает модуль x509 для проверки подписанных сертификатов.
- -noout - не выводить закодированный текст
- -text - выводить информацию на экран
- -in server. CA.crt - Загрузить подписанный сертификат
- Файл server. CA.crt может быть передан любому, кто будет использовать ваш веб-сайт или сертификаты, которые вы планируете подписывать.
Часть 2 из 4: Создание сертификатов SSL для службы, такой как Apache
Шаг 1. Создайте закрытый ключ
-
openssl genrsa -des3 -out server.apache.key 2048
-
Объяснение вариантов:
- openssl - название программы
- genrsa - создает новый закрытый ключ
- -des3 - зашифровать ключ с помощью шифра DES
- -out server.apache.key - имя вашего нового ключа
- 2048 - длина закрытого ключа в битах (см. Предупреждения)
- Храните этот сертификат и пароль в надежном месте.
Шаг 2. Создайте запрос на подпись сертификата
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
Объяснение вариантов:
- req - создает запрос на подпись
- -verbose - показывает подробную информацию о создаваемом запросе (необязательно)
- -new - создает новый запрос
- -key server.apache.key - закрытый ключ, который вы только что создали.
- -out server.apache.csr - имя файла запроса подписи, который вы создаете
- sha256 - Алгоритм шифрования, используемый для подписи запросов (если вы не знаете, что это такое, не меняйте его. Вам следует изменять это только в том случае, если вы знаете, что делаете)
Шаг 3. Используйте свой сертификат CA, чтобы подписать новый ключ
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
Объяснение вариантов:
- ca - загружает модуль центра сертификации
- -out server.apache.pem - Имя файла подписанного сертификата
- -keyfile server. CA.key - имя файла сертификата CA, который будет подписывать запрос
- -infiles server.apache.csr - имя файла запроса на подпись сертификата.
Шаг 4. Максимально заполните информацию:
-
Название страны (двухбуквенный код) [Австралия]:
нас
-
Название штата или провинции (полное название) [Some-State]:
CA
-
Название населенного пункта (например, город) :
Силиконовая Долина
-
Название организации (например, компания) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Название организационной единицы (например, раздел) :
-
Общее имя (например, полное доменное имя сервера или ВАШЕ имя) :
-
Адрес электронной почты :
Шаг 5. Сохраните копию вашего закрытого ключа в другом месте
Создайте закрытый ключ без пароля, чтобы Apache не запрашивал пароль:
-
openssl rsa -в server.apache.key -out server.apache.unsecured.key
-
Объяснение вариантов:
- rsa - запускает программу шифрования RSA
- -in server.apache.key - имя ключа, который вы хотите преобразовать.
- -out server.apache.unsecured.key - Имя файла нового незащищенного ключа
Шаг 6. Используйте полученный файл server.apache.pem вместе с закрытым ключом, сгенерированным на шаге 1, для настройки файла apache2.conf
Часть 3 из 4: Создание сертификата пользователя для аутентификации
Шаг 1. Выполните все шаги в _Создание SSL-сертификатов для Apache_
Шаг 2. Преобразуйте подписанный сертификат в PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Часть 4 из 4. Создание сертификатов электронной почты S / MIME
Шаг 1. Создайте закрытый ключ
openssl genrsa -des3 -out private_email.key 2048
Шаг 2. Создайте запрос на подпись сертификата
openssl req -new -key private_email.key -out private_email.csr
Шаг 3. Используйте свой сертификат CA, чтобы подписать новый ключ
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Шаг 4. Преобразуйте сертификат в PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Шаг 5. Создайте сертификат открытого ключа для распространения
openssl pkcs12 -export -out public_cert.p12 -in private_email.pem -clcerts -nokeys -name "Открытый ключ WikiHow"
подсказки
Вы можете изменить содержимое ключей PEM, введя следующую команду: openssl x509 -noout -text -in certificate.pem
Предупреждения
- 1024-битные ключи считаются устаревшими. 2048-битные ключи считаются безопасными для пользовательских сертификатов до 2030 года, но считаются недостаточными для корневых сертификатов. Учитывайте эти уязвимости при создании сертификатов.
- По умолчанию большинство современных браузеров показывают предупреждение «Недоверенный сертификат», когда кто-то посещает ваш сайт. Формулировка этих предупреждений вызывает много споров, поскольку нетехнические пользователи могут быть застигнуты врасплох. Часто лучше использовать крупный авторитет, чтобы пользователи не получали предупреждений.