Генерация самоподписанного сертификата в Linux
- pem, .crt, .cer — готовый, подписанный центром сертификации сертификат, расширения разные, но означают одно и то же. Если совсем просто, то сертификат, это подписанный открытый ключ, плюс немного информации о вашей компании;
- .key — закрытый или открытый ключ;
- .csr — запрос на подпись сертификата, в этом файле хранится ваш открытый ключ плюс информация, о компании и домене, которую вы указали
Создать приватный ключ
openssl genrsa -des3 -out server.key 2048
Создать запрос на сертификат
openssl req -new -key server.key -out server.csr
Снять пароль с приватного ключа (Чтобы не запрашивался при загрузке)
openssl rsa -in server.key -out server.key
Сгенерировать сертификат
oopenssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Далее готовые сертификаты можно использовать, например, для SSL серверов.
Для nginx
ssl_certificate /etc/nginx/conf/server.pem; ssl_certificate_key /etc/nginx/server.key;
Для apache2
SSLCertificateFile /etc/apache2/server.pem; SSLCertificateKeyFile /etc/apache2/server.key;
Проверить сертификаты можно после перезагрузки web сервера
openssl s_client -connect 192.168.1.150:443
При необходимости можно преобразовать сертификат в формат PKCS12
openssl pkcs12 -export -in ./server.crt -inkey ./server.key -out ./server.p12 -name "vpn.converters.ru"
И создание pem из p12
openssl pkcs12 -in server.p12 -out server.pem -nodes
Распаковка pfx
openssl pkcs12 -nokeys -clcerts -in server.pfx -out server.pem
Импортирование в трастор
keytool -import -trustcacerts -file server.pem -alias server -keystore cacerts.jks