Два файла, которые вам понадобятся, - это SSL-сертификат в формате PEM и закрытый ключ. Сертификаты и ключи в кодировке PEM представляют собой текст в кодировке Base64 с начальными / конечными разделителями, которые выглядят -----BEGIN RSA PRIVATE KEY-----
или похожи.
Чтобы создать сертификат SSL, вам сначала нужно сгенерировать закрытый ключ и запрос на подпись сертификата или CSR (который также содержит ваш открытый ключ). Вы можете сделать это разными способами, но вот как это сделать в OpenSSL.
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
Это заставит вас ввести интерактивную подсказку для генерации 2048-битного закрытого ключа RSA и CSR, который содержит всю информацию, которую вы выбираете для ввода в подсказках. ( Примечание: Common Name - это место, где вы захотите указать доменное имя, которое вы будете использовать для доступа к своему сайту. ) После того, как вы это сделаете, вы обычно отправляете этот CSR в доверенный центр сертификации, и после того, как они подтвердят по вашему запросу вы получите сертификат.
Если вас не волнует, что вашему сертификату доверяют (обычно это используется в целях разработки), вы можете просто создать самозаверяющий сертификат. Для этого мы можем использовать почти ту же строку, но передадим два дополнительных параметра.
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
Это даст вам сертификат (действительный в течение 10 лет) и пару ключей, которые вы можете использовать в опубликованном фрагменте кода.
Просто следуйте этой процедуре:
создайте папку, в которой вы хотите сохранить свой ключ и сертификат:
mkdir conf
перейдите в этот каталог:
cd conf
возьмите этот
ca.cnf
файл для использования в качестве ярлыка конфигурации:wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf
создайте новый центр сертификации, используя эту конфигурацию:
openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem
Теперь, когда у нас сертификатные в
ca-key.pem
иca-cert.pem
, давайте генерировать секретный ключ для сервера:openssl genrsa -out key.pem 4096
возьмите этот
server.cnf
файл для использования в качестве ярлыка конфигурации:wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf
сгенерируйте запрос на подпись сертификата, используя эту конфигурацию:
openssl req -new -config server.cnf -key key.pem -out csr.pem
подпишите заявку:
openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem
Я нашел здесь эту процедуру , а также дополнительную информацию о том, как использовать эти сертификаты.
источник