Thank you for reading this post, don't forget to subscribe!
yum install openssl
После установки OpenSSL, создаём папки, в которых будут лежать наши сертификаты и ключи, например так:
1
|
mkdir /home/devuser/cert/
|
Приступаем к созданию самоподписанного ssl сертификата. Выполняем команду:
1
|
openssl req -x509 -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt
|
Описание параметров:
- req – это генерация запросов на подпись сертификата, но если мы задаём ключ “-x509”, это означает, что мы генерируем самоподписанный сертификат.
- -newkey rsa:2048 – если у нас ещё нет ключа, мы добавляем данный параметр, что бы ключ был создан автоматически. Указываем параметры ключа.
- -days 365 – указываем количество дней, в течении которых будет действовать данный сертификат.
- -keyout /home/devuser/cert/mykey.key – параметр нужен, так как мы указали newkey и генерируем новый ключ. Указываем в какой фал положим ключ.
- -out /home/devuser/cert/cert.crt – сюда положим наш сертификат.
Дальше нас попросят ввести пароль к ключу. Вводим пароль, не меньше 4 символов, и повторяем ввод пароля. Затем нас попросят ввести данные о сертификате (информацию о серверной стороне). Если какие-то данные Вам не нужны можете просто ставить точку (“.”).
Давайте рассмотрим по порядку, что нам предлагают ввести:
- Country Name (2 letter code) [AU]: 77 – страна/регион
- State or Province Name (full name) [Some-State]:. – штат (у нас их нет, поэтому пропускаем)
- Locality Name (eg, city) []:Moscow – город
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:DOMru – имя организации
- Organizational Unit Name (eg, section) []:. – подразделение организации, пропускаем.
- Common Name (e.g. server FQDN or YOUR name) []:test.ru – Обязательное поле, это имя по которому к серверу будут обращаться.
- Email Address []:admin@test.ru – адрес электронной почты, тоже можно пропустить.
В итоге мы получили два файла, ключ и сертификат. Ключ-это секретный ключ, публичный ключ находиться в теле самого сертификата.
Убираем пароль с секретного ключа.
Ещё можно немного модифицировать команду, например убрать пароль с секретного ключа, это в большинстве случаев не удобно, если сервис стартует в автоматическом режиме, в тот момент когда ему необходимо будет получить доступ к секретному ключу, нужно будет вручную ввести пароль.
Добавляем параметр “-nodes”, в результате секретный ключ не будет зашифрован паролем.
1
|
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt
|
Так же можно ещё добавить параметр “-subj” – этот тот кому принадлежит сертификат, то что мы вводили в интерактивном режиме (название организации, мыло и так далее). Можно эти параметры сразу указать в скрипте. Например так:
1
|
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/devuser/cert/mykey.key -out /home/devuser/cert/cert.crt -subj /C=/ST=/L=/O=/CN=DOMru
|
В примере выше пропускаем все поля, кроме CN (Common Name).
Для просмотра сертификата можно воспользоваться этой командой:
1
|
openssl x509 -noout -text -in /home/devuser/cert/cert.crt
|
- -noout – выводим данные не в файл а в консоль.
- -text – выводим данные в текстовом виде.
- -in /home/devuser/cert/cert.crt – откуда берём сертификат