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

Ошибка при создании самоподписанного SSL-сертификата

Я пытаюсь создать самоподписанный сертификат SSL с помощью OpenSSL (версия, которая поставляется с Apache 2.2 + mod_ssl). Бинарные файлы OpenSSL находятся в C:\Web\Apache2.2\bin, а файл конфигурации, который я использую, C:\Web\Apache2.2\conf\openssl.cnf. Я выполнил следующие команды:

(Я буду использовать символы новой строки, чтобы сделать его более читаемым.)

openssl req -config ..\conf\openssl.cnf -new -out ..\conf\eduardo.csr
        -keyout ..\conf\eduardo.pem
# Then I entered country code, province, city, etc.
# This step worked correctly.

openssl rsa -in ..\conf\eduardo.pem -out ..\conf\eduardo.key
# Then I entered my pass phrase.

openssl x509 -in ..\conf\eduardo.csr -out ..\conf\eduardo.cert
        -req -signkey ..\conf\eduardo.key -days 1000000

И при выполнении последнего шага я получил следующий результат:

Loading 'screen' into random state - done
Signature ok
subject=/C=PE/ST=Lima/L=Lima/...
Getting Private Key
unable to write 'random state' <--

Что означает эта ошибка и как ее исправить?

openssl пытается записать «случайное состояние» в файл, но разрешения используемого им каталога не позволяют создать файл. Видеть:

http://www.openssl.org/support/faq.cgi#USER2

  1. Изначально вам нужно открыть командную строку в режиме администратора.

Затем сделайте следующее:

  1. cd to_the_certificate_path_folder
  2. установите OPENSSL_CONF = "C: \ OpenSSL-Win32 \ bin \ openssl.cfg"
  3. set RANDFILE = "D: \ path_to_certs \ .rnd" Здесь, если вы установите путь RANDFILE без упоминания .rnd, тогда будет выдано сообщение «Невозможно записать случайное состояние», и openssl не создал случайное состояние .rnd для файла.

  4. C: \ OpenSSL-Win32 \ bin \ openssl.exe

  5. OpenSSL> genrsa -out ca.key

У меня это сработало.

Для меня на Windows Server решением было просто убедиться, что командная строка открывалась через «Запуск от имени администратора».