Можно ли сгенерировать ключ RSA без пароля?
Я работаю с 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
Сценарий запустит сервер HTTP без вмешательства человека (т. е. если я дам 4-символьную парольную фразу, он ожидает, что я предоставлю это при запуске сервера Apache HTTP).
9 ответов
Если вы генерируете самозаверяющий сертификат, вы можете выполнить и ключ, и сертификат в одной команде следующим образом:
openssl req -nodes -new -x509 -keyout server.key -out server.cert
О, и что @MadHatter сказал в своем ответе об опускании -des3
флаг.
Оставь в покое -des3
флаг, который является инструкцией для 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"
Добавление '-nodes' к 'openssl req' позволяет генерировать незашифрованный (без пароля) закрытый ключ из команды 'openssl req'
Просто запустите его снова через openssl
сначала сгенерируйте ключ с парольной фразой
затем openssl rsa -in server.key -out server.key
Используйте следующую команду для создания файла закрытого ключа без пароля без шифрования. Последний параметр - это размер закрытого ключа.
openssl genrsa -out my-passless-private.key 4096
Чтобы создать сертификат PEM без парольной фразы:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 10000 -nodes
Чтобы создать самозаверяющий сертификат для тестирования:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem \
-days 365 -sha256
Затем удалите пароль с ключа через
openssl rsa -in key.pem -out nopass.pem
Эти ответы взяты из: https://actix.rs/docs/server/. Этот ответ завершает /questions/517422/mozhno-li-sgenerirovat-klyuch-rsa-bez-parolya/517438#517438 выше с предыдущим шагом.