Введение
В этой статье объясняется, как создать самозаверяющий сертификат SSL с помощью инструмента openssl.
Что такое самозаверяющий SSL-сертификат?
Самоподписанный SSL-сертификат — это сертификат, подписанный создавшим его лицом, а не доверенным центром сертификации. Самоподписанные сертификаты могут иметь тот же уровень шифрования, что и доверенный сертификат SSL, подписанный ЦС.
Если используется самоподписанный сертификат, веб-браузер покажет посетителю предупреждение о том, что сертификат веб-сайта не может быть проверен.
Самоподписанные сертификаты в основном используются для тестирования или внутреннего использования. Не используйте самозаверяющий сертификат в производственных системах, подключенных к Интернету.
Если вы хотите создать самоподписанный сертификат на удаленном сервере, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Предпосылки
Инструментарий openssl необходим для создания самозаверяющего сертификата.
Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте терминал, введите openssl version
и нажмите Enter. Если пакет установлен, система напечатает версию OpenSSL, иначе вы увидите что-то вроде openssl command not found
.
Если пакет openssl не установлен в вашей системе, вы можете установить его, выполнив следующую команду:
Убунту и Дебиан
sudo apt install openssl
Центос и Федора
sudo yum install openssl
Создайте самозаверяющий SSL-сертификат
Чтобы создать новый самоподписанный SSL, используйте команду openssl req
:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key
Давайте пройдемся по команде и поймем, что означает каждая опция:
-newkey rsa:4096
— создает новый 4096-битный ключ RSA и запрос сертификата. По умолчанию 2048 бит.-x509
— создает сертификат X.509.-sha256
— использовать 265-битный SHA (алгоритм безопасного хеширования).-days 3650
- Количество дней для сертификации сертификата. 3650 10 лет. Вы можете использовать любое положительное целое число.-nodes
— Создает ключ без парольной фразы.-out example.crt
— указывает имя файла для записи вновь созданного сертификата. Можно указать любое имя файла.-keyout example.key
— указывает имя файла для записи вновь созданного закрытого ключа. Можно указать любое имя файла.
Для получения дополнительной информации о параметрах команды openssl req
посетите страницу документации OpenSSL req.
Как только вы нажмете Enter, команда сгенерирует закрытый ключ и задаст вам ряд вопросов, которые будут использоваться для создания сертификата.
Generating a RSA private key......................................................................++++........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Введите необходимую информацию и нажмите Enter.
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Noviello
Organizational Unit Name (eg, section) []:Marketing
Common Name (eg server FQDN or YOUR name) []:noviello.it
Email Address []:[email protected]
Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:
ls
example.crt example.key
Это все! Вы создали новый самозаверяющий SSL-сертификат.
Всегда рекомендуется создавать резервную копию нового сертификата и ключа для внешнего хранилища.
Создайте самозаверяющий SSL-сертификат без запроса
Если вы хотите сгенерировать самоподписанный SSL-сертификат без каких-либо вопросов, используйте параметр -subj
и укажите всю информацию о субъекте:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key \
-subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key......................................................................++++........++++
writing new private key to 'example.key'
-----
Поля, указанные в строке -subj
, перечислены ниже:
C=
- Название страны. Двухбуквенная аббревиатура ISO.ST=
- Название штата или провинции.L=
- Название местоположения. Название города, в котором вы находитесь.O=
- Полное название вашей организации.OU=
- Организационная единица.CN=
— полное доменное имя.
Вывод
В этом руководстве мы показали вам, как создать самозаверяющий сертификат SSL с помощью инструмента openssl. Теперь, когда у вас есть сертификат, вы можете настроить приложение для его использования.