OpenSSL и ошибка чтения файла openssl.conf - программирование
Подтвердить что ты не робот

OpenSSL и ошибка чтения файла openssl.conf

Я запускаю windows xp 32bit

Я только что загрузил Openssl со следующего URL-адреса и установил его. http://www.slproweb.com/products/Win32OpenSSL.html

а затем я попытался создать самоподписанный сертификат, используя следующую команду

openssl req -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

то он начал давать следующую ошибку

Невозможно загрузить конфигурационную информацию из /usr/local/ssl/openssl.cnf

Затем после googling я изменил приведенную выше команду на

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

Но теперь я получаю следующую ошибку в командной строке

ошибка в строке -1 из C:\OpenSSL\bin\openssl.conf
4220: ошибка: 02001002: системная библиотека: fopen: нет такого файла или каталог:.\Crypto\био\bss_file.c: 126: Еореп ( 'C:\OpenSSL\Bin\openssl.conf', '' гь) 4220: ошибка: 2006D080: Подпрограммы BIO: BIO_new_file: нет таких Файл:.\Crypto\био\bss_file.c: 129:
4220: ошибка: 0E078072: файлы конфигурационных файлов: DEF_LOAD: нет таких Файл:.\Crypto\конф\conf_def.c: 197

Пожалуйста, помогите. Спасибо заранее.

4b9b3361

Ответ 1

В Windows вы также можете установить свойство среды OPENSSL_CONF. Например, из командной строки вы можете ввести:

set OPENSSL_CONF=c:/libs/openssl-0.9.8k/openssl.cnf

чтобы подтвердить его, вы можете ввести:

echo %OPENSSL_CONF%

Вы также можете установить его как часть переменных окружения компьютера, чтобы все пользователи и службы имели его по умолчанию. См., Например, Переменные среды в Windows NT и Как управлять переменными среды в Windows XP.

Теперь вы можете запускать команды openssl без необходимости передавать параметр конфигурации.

Ответ 2

Просто добавьте в свою командную строку параметр -config c:\your_openssl_path\openssl.cfg, изменив your_openssl_path на реальный установленный путь.

Ответ 3

Просто создайте файл openssl.cnf самостоятельно, как показано на шаге 4: http://www.flatmtn.com/article/setting-openssl-create-certificates

Изменить после того, как ссылка перестала работать Содержимое файла openssl.cnf было следующим:

#
# OpenSSL configuration file.
#

# Establish working directory.

dir                 = .

[ ca ]
default_ca              = CA_default

[ CA_default ]
serial                  = $dir/serial
database                = $dir/certindex.txt
new_certs_dir               = $dir/certs
certificate             = $dir/cacert.pem
private_key             = $dir/private/cakey.pem
default_days                = 365
default_md              = md5
preserve                = no
email_in_dn             = no
nameopt                 = default_ca
certopt                 = default_ca
policy                  = policy_match

[ policy_match ]
countryName             = match
stateOrProvinceName         = match
organizationName            = match
organizationalUnitName          = optional
commonName              = supplied
emailAddress                = optional

[ req ]
default_bits                = 1024          # Size of keys
default_keyfile             = key.pem       # name of generated keys
default_md              = md5               # message digest algorithm
string_mask             = nombstr       # permitted characters
distinguished_name          = req_distinguished_name
req_extensions              = v3_req

[ req_distinguished_name ]
# Variable name             Prompt string
#-------------------------    ----------------------------------
0.organizationName          = Organization Name (company)
organizationalUnitName          = Organizational Unit Name (department, division)
emailAddress                = Email Address
emailAddress_max            = 40
localityName                = Locality Name (city, district)
stateOrProvinceName         = State or Province Name (full name)
countryName             = Country Name (2 letter code)
countryName_min             = 2
countryName_max             = 2
commonName              = Common Name (hostname, IP, or your name)
commonName_max              = 64

# Default values for the above, for consistency and less typing.
# Variable name             Value
#------------------------     ------------------------------
0.organizationName_default      = My Company
localityName_default            = My Town
stateOrProvinceName_default     = State or Providence
countryName_default         = US

[ v3_ca ]
basicConstraints            = CA:TRUE
subjectKeyIdentifier            = hash
authorityKeyIdentifier          = keyid:always,issuer:always

[ v3_req ]
basicConstraints            = CA:FALSE
subjectKeyIdentifier            = hash

Ответ 4

Если вы установили Apache с OpenSSL, перейдите в каталог bin. В моем случае D:\apache\bin.

* Эти команды также работают, если у вас есть отдельная установка openssl.

Запустите следующие команды:

openssl req -config d:\apache\conf\openssl.cnf -new -out d:\apache\conf\server.csr -keyout d:\apache\conf\server.pem
openssl rsa -in d:\apache\conf\server.pem -out d:\apache\conf\server.key
openssl x509 -in d:\apache\conf\server.csr -out d:\apache\conf\server.crt -req -signkey d:\apache\conf\server.key -days 365

* Это создаст самозаверяющий сертификат, который вы можете использовать для целей разработки

Опять же, если у вас установлен Apache в пачке httpd.conf, выполните следующие действия:

  <IfModule ssl_module>
    SSLEngine on
    SSLCertificateFile "D:/apache/conf/server.crt"
    SSLCertificateKeyFile "D:/apache/conf/server.key"
  </IfModule>

Ответ 5

Просто попробуйте запустить openssl.exe как администратор.

Ответ 6

set OPENSSL_CONF=c:/{path to openSSL}/bin/openssl.cfg

заботиться о правильном расширении ( openssl.cfg не cnf)!

Я установил OpenSSL отсюда: http://slproweb.com/products/Win32OpenSSL.html

Ответ 7

У меня была аналогичная ошибка с помощью файла openssl.exe из папки Apache для Windows. У меня был флаг -config, указанный с помощью опечатки на пути к файлу openssl.cnf. Я думаю, вы обнаружите, что

openssl req -config C:\OpenSSL\bin\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

должен быть

openssl req -config "C:\OpenSSL\bin\openssl.cnf" -x509 -days 365 -newkey rsa:1024 -keyout hostkey.pem -nodes -out hostcert.pem

Примечание: conf должен быть cnf.

Ответ 8

Если установка openssl прошла успешно, найдите "OPENSSL" на диске c, чтобы найти файл конфигурации и установить путь.

set OPENSSL_CONF=<location where cnf is available>/openssl.cnf

Это сработало для меня.

Ответ 9

Этот обходной способ помог нам так много на моей работе (Техническая поддержка), мы создали простой командный файл, который мы могли запускать из любого места (у нас не было прав на его установку). Это обходное решение установит переменную, а затем запустит OpenSSL. Он также открывает для вас папку bin (так как это будут файлы, которые вы создаете или изменяете, будут сохранены). Кроме того, это только для Windows.

Как настроить:

  • Загрузите двоичные файлы OpenSSL здесь. (Обратите внимание, что это подтверждено для работы с версией 0.9.8h.)
  • Скопируйте этот код в файл с именем StartOpenSSL.bat. Сохраните это в выбранном вами месте. Его можно запустить из любого места.

    @echo off
    title OpenSSL
    
    cd\openssl\bin
    
    if exist "C:\openssl\share\openssl.cnf" (
    
    set OPENSSL_CONF=c:/openssl/share/openssl.cnf
    start explorer.exe c:\openssl\bin
    
    echo Welcome to OpenSSL
    
    openssl
    
    ) else (
    
    echo Error: openssl.cnf was not found
    echo File openssl.cnf needs to be present in c:\openssl\share
    pause
    
    )
    
    exit
    
  • После того как вы загрузили двоичные файлы OpenSSL, извлеките их на диск C в папку под названием OpenSSL. (Путь должен быть C:\OpenSSL). Не перемещайте содержимое содержимого папок, просто извлеките их в папку.
  • Вы готовы использовать OpenSSL. Это отличный обход для пользователей Windows, у которых нет привилегий для его установки, поскольку для этого не требуется никаких разрешений. Просто запустите файл bat с более раннего времени, дважды щелкнув его.

Ответ 10

Проблема здесь в том, что НЕ НЕ является файлом openssl.cnf, данным с помощью материала GnuWin32 openssl. Вы должны создать его. Вы можете узнать, КАК создать файл openssl.cnf, перейдя сюда:

http://www.flatmtn.com/article/setting-ssl-certificates-apache

Где он все это делает для вас, как это сделать.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: команда openssl, заданная с обратной косой чертой в конце, предназначена для UNIX. Для Windows: 1) Удалите обратную косую черту и 2) Переместите вторую строчку так, чтобы она была в конце первой строки. (Таким образом, вы получаете только одну команду.)

ТАКЖЕ: ОЧЕНЬ важно прочитать комментарии. Есть некоторые изменения, которые вы можете сделать на их основе.

Ответ 11

Если вы видите ошибку, например

ошибка в строке -1 c: apacheconfopenssl.cnf

попробуйте переключиться с обратной косой черты на переднюю косую черту в -config.

Ответ 12

Запустите команду как администратор и скопируйте файл конфигурации туда, где у вас есть права на чтение, и укажите путь с параметром -config.

Ответ 13

https://github.com/xgqfrms-gildata/App001/issues/3

  • сначала убедитесь, что у вас есть файл openssl.cnf на правильном пути;
  • если вы не можете найти его, просто загрузите один и скопируйте его в путь настройки.
$ echo %OPENSSL_CONF%

$ set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cnf

Ответ 14

Я знаю, что это старо - но думал, что другие, которые происходят на этом (и используют Visual Studio), могли бы извлечь выгоду. Я прочитал это в другом посте, который я не могу найти.

Откройте вашу конфигурацию в notepad++ и убедитесь, что она имеет кодировку UTF-8 (т.е. Не UTF-8-BOM *).

Это спасло бы меня от многих поисков/пробных ошибок...

Ответ 15

У меня была такая же проблема на Windows. Это было решено установкой переменной среды следующим образом:

Имя переменной: OPENSSL_CONF Значение переменной: C: (каталог OpenSSl)\bin\openssl.cnf