Назад | Перейти на главную страницу

Можно ли сгенерировать ключ 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 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'