Я работаю с Apache2 и Passenger для проекта Rails. Я хочу создать самоподписанный Сертификат SSL для тестирования.
sudo openssl rsa -des3 -in server.key -out server.key.new
Когда я ввожу указанную выше команду, она говорит
writing RSA key
Enter PEM pass phrase:
Если я не введу пароль, я получу ошибку ниже
unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382
Можно ли сгенерировать ключ RSA без указания pass phrase
, так как я не уверен, как /etc/init.d/httpd
script запустит HTTP-сервер без вмешательства человека (т.е. если я дам 4-символьную парольную фразу, он ожидает, что я предоставлю это при запуске HTTP-сервера Apache).
Если вы создаете самоподписанный сертификат, вы можете использовать ключ и сертификат в одной команде следующим образом:
openssl req -nodes -new -x509 -keyout server.key -out server.cert
О, и что сказал @MadHatter в его ответ об исключении -des3
флаг.
Оставь -des3
flag, который является инструкцией openssl для шифрования server.key.new (который, кстати, вовсе не новый ключ - он точно такой же, как server.key, только с измененной / удаленной парольной фразой).
В openssl req
команда из ответ @Tom H правильно создать самоподписанный сертификат в server.cert
вкл. закрытый ключ RSA без пароля в server.key
:
openssl req -nodes -new -x509 -keyout server.key -out server.cert
Вот как это работает. Опуская -des3
как в ответ @MadHatter в этом случае недостаточно создать закрытый ключ без парольной фразы. Это является достаточно для этого в openssl rsa
("преобразовать закрытый ключ") команда, на которую ссылаются @MadHatter и openssl genrsa
("создать закрытый ключ") команда. Только не для openssl req
команда здесь. Нам дополнительно понадобится -nodes
("Нет шифрования DES server.key
пожалуйста!").
Использовать -nodes
параметр, если этот параметр указан, закрытый ключ не будет зашифрован, например:
openssl \
req \
-nodes \
-newkey rsa:2048 \
-keyout www.example.com.key \
-out www.example.com.csr \
-subj "/C=DE/ST=NRW/L=Berlin/O=My Inc/OU=DevOps/CN=www.example.com/emailAddress=dev@www.example.com"
Просто запустите его снова через openssl
сначала сгенерируйте ключ с парольной фразой
затем openssl rsa -in server.key -out server.key
Используйте следующую команду для создания файла закрытого ключа без пароля с НЕТ шифрования. Последний параметр - это размер закрытого ключа.
openssl genrsa -out my-passless-private.key 4096
Добавление '-nodes' в 'openssl req' позволяет сгенерировать незашифрованный (без парольной фразы) закрытый ключ с помощью команды 'openssl req'