web-dev-qa-db-fra.com

OpenSSL et erreur de lecture du fichier openssl.conf

Je suis sous Windows XP 32bit

Je viens de télécharger Openssl à partir de l’URL suivante et de l’installer . http://www.slproweb.com/products/Win32OpenSSL.html

et puis j'ai essayé de créer un certificat auto-signé en utilisant la commande suivante

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

alors il a commencé à donner l'erreur suivante 

Impossible de charger les informations de configuration depuis /usr/local/ssl/openssl.cnf

Puis, après avoir googlé quelque temps, j'ai changé la commande ci-dessus en 

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

Mais maintenant, je reçois l'erreur suivante dans l'invite de commande

erreur sur la ligne -1 de C:\OpenSSL\bin\openssl.conf
4220: erreur: 02001002: bibliothèque système: fopen: Aucun fichier de ce type ou répertoire:.\crypto\bio\bss_file.c: 126: fopen ('C:\OpenSSL\bin\openssl.conf', 'rb') 4220: erreur: 2006D080: routines BIO: BIO_new_file: no such fichier:.\crypto\bio\bss_file.c: 129:
4220: erreur: 0E078072: routines du fichier de configuration: DEF_LOAD: pas de fichier:.\crypto\conf\conf_def.c: 197:

S'il vous plaît, aidez-moi ... Merci d'avance.

101
Sreeram

Sous Windows, vous pouvez également définir la propriété d'environnement OPENSSL_CONF. Par exemple, à partir de la ligne de commande, vous pouvez taper:

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

pour le valider vous pouvez taper:

echo %OPENSSL_CONF%

Vous pouvez également le définir en tant que partie intégrante des variables d'environnement de l'ordinateur afin qu'il soit disponible par défaut pour tous les utilisateurs et services. Voir, par exemple, Variables d'environnement dans Windows NT et Comment gérer les variables d'environnement dans Windows XP .

Vous pouvez maintenant exécuter des commandes openssl sans avoir à passer le paramètre config location.

128
dvtoever

Ajoutez simplement à votre ligne de commande le paramètre -config c:\your_openssl_path\openssl.cfg, en remplaçant your_openssl_path par le chemin réellement installé.

37
Nikl

Créez simplement un fichier openssl.cnf vous-même, à l’étape 4: http://www.flatmtn.com/article/setting-openssl-create-certificates

Edit après que le lien a cessé de fonctionner Le contenu du fichier openssl.cnf était le suivant:

#
# 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

Vous pouvez toujours trouver la page en utilisant Waybackmachine: https://web.archive.org/web/20171108102046/http://www.flatmtn.com/article/setting-openssl-create-certificates

21
Sam

Essayez simplement d’exécuter openssl.exe en tant qu’administrateur.

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

prenez soin de la bonne extension (openssl.cfg not cnf)!

J'ai installé OpenSSL à partir d'ici: http://slproweb.com/products/Win32OpenSSL.html

11
user669677

Si vous avez installé Apache avec OpenSSL, accédez au répertoire bin. Dans mon cas, D:\Apache\bin.

* Ces commandes fonctionnent également si vous avez une installation autonome d’openssl.

Exécutez ces commandes:

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

* Ceci créera un certificat auto-signé que vous pourrez utiliser à des fins de développement

Encore une fois, si vous avez Apache installé dans le fichier httpd.conf, collez-le:

  <IfModule ssl_module>
    SSLEngine on
    SSLCertificateFile "D:/Apache/conf/server.crt"
    SSLCertificateKeyFile "D:/Apache/conf/server.key"
  </IfModule>
10
Artur Kędzior

Je viens d'avoir une erreur similaire en utilisant le fichier openssl.exe du dossier Apache pour Windows bin. J'avais l'indicateur -config spécifié par avait une faute de frappe dans le chemin du fichier openssl.cnf. Je pense que vous allez trouver ça

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

devrait être

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

Remarque: le conf devrait probablement être cnf.

7
Nic Cottrell

Si l'installation de openssl a réussi, recherchez "OPENSSL" dans le lecteur c pour localiser le fichier de configuration et définir le chemin.

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

Cela a fonctionné pour moi.

4
hermes101

Le problème ici est qu’il n’EST PAS un fichier openssl.cnf fourni avec le fichier opensn de GnuWin32. Vous devez le créer. Vous pouvez trouver comment créer un fichier openssl.cnf en allant ici:

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

Où tout est prévu pour vous et comment le faire.

VEUILLEZ NOTER: La commande openssl donnée avec la barre oblique inverse à la fin est destinée à UNIX. Pour Windows: 1) Supprimez la barre oblique inverse et 2) Déplacez la deuxième ligne vers le haut afin qu'elle se trouve à la fin de la première ligne. (Donc, vous obtenez juste une commande.)

AUSSI: Il est TRÈS important de lire les commentaires. Vous voudrez peut-être y apporter certains changements.

2
Mark Manning

Cette solution de contournement nous a beaucoup aidés dans mon travail (support technique), nous avons créé un simple fichier de commandes que nous pourrions exécuter de n’importe où (nous n’avions pas les autorisations nécessaires pour l’installer). Cette solution de contournement définira la variable, puis exécutera OpenSSL pour vous. Il ouvre également le dossier bin pour vous (car c’est là que tous les fichiers que vous créez ou modifiez seront sauvegardés). En outre, cela ne concerne que Windows.

Comment mettre en place:

  1. Téléchargez les binaires OpenSSL ici . (Notez que cela est confirmé pour fonctionner avec la version 0.9.8h.)
  2. Copiez ce code dans un fichier nommé StartOpenSSL.bat. Enregistrez ceci dans un emplacement de votre choix. Il peut être exécuté de n'importe où.

    @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
    
  3. Une fois que vous avez téléchargé les fichiers binaires OpenSSL, extrayez-les sur votre lecteur C dans un dossier intitulé OpenSSL. (Le chemin doit être C:\OpenSSL). Ne déplacez pas le contenu des dossiers, mais extrayez-les simplement dans le dossier.
  4. Vous êtes prêt à utiliser OpenSSL. Il s'agit d'une solution de contournement intéressante pour les utilisateurs Windows qui ne disposent pas des privilèges pour l'installer car aucune autorisation n'est requise. Il suffit de lancer le fichier chauve-souris précédemment en double-cliquant dessus.
1
Rex Linder

Si vous voyez une erreur quelque chose comme 

erreur sur la ligne -1 c: apacheconfopenssl.cnf

essayez de changer de barre oblique en barre oblique dans le fichier -config.

1
Jauyzed

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

  1. d'abord, assurez-vous d'avoir un fichier openssl.cnf dans le bon chemin;
  2. si vous ne le trouvez pas, il vous suffit de télécharger un et de le copier dans votre chemin de paramétrage.
$ echo %OPENSSL_CONF%

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

Exécutez la commande en tant qu'administrateur, copiez le fichier de configuration dans un emplacement où vous disposez de droits de lecture et spécifiez le chemin avec le paramètre -config.

0
Dexion

Je sais que c’est vieux, mais j’en ai pensé que d’autres pourraient en tirer parti (et utiliser Visual Studio). J'ai lu ceci sur un autre post que je n'arrive pas à trouver.

Ouvrez votre config dans notepad ++ et assurez-vous qu’il s’agit du codage UTF-8 (c’est-à-dire, pas UTF-8-BOM *).

Cela m'aurait épargné beaucoup de recherches/trial'n'errors ...

0
jimnkey

J'ai eu le même problème sous Windows. Cela a été résolu en définissant la variable d'environnement comme suit:

Nom de la variable: OPENSSL_CONF Valeur de la variable: C: (répertoire OpenSSl)\bin\openssl.cnf

0
Braullio Soares