it-swarm.com.de

OpenSSL und Fehler beim Lesen der Datei openssl.conf

Ich verwende Windows XP 32bit

Ich habe gerade Openssl von der folgenden URL heruntergeladen und installiert. . http://www.slproweb.com/products/Win32OpenSSL.html

und dann habe ich versucht, ein selbst signiertes Zertifikat mit dem folgenden Befehl zu erstellen

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

dann begann der folgende Fehler 

Konfigurationsinformationen können nicht von /usr/local/ssl/openssl.cnf geladen werden

Dann, nachdem ich irgendwann googelt habe, habe ich den obigen Befehl in geändert 

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

Aber jetzt bekomme ich den folgenden Fehler in der Eingabeaufforderung

fehler in Zeile -1 von C:\OpenSSL\bin\openssl.conf
4220: Fehler: 02001002: Systembibliothek: fopen: Keine solche Datei oder Verzeichnis:.\crypto\bio\bss_file.c: 126: fopen ('C:\OpenSSL\bin\openssl.conf', 'rb') 4220: Fehler: 2006D080: BIO-Routinen: BIO_new_file: kein solcher Datei:.\crypto\bio\bss_file.c: 129:
4220: Fehler: 0E078072: Routinen der Konfigurationsdatei: DEF_LOAD: Nein, Datei:.\crypto\conf\conf_def.c: 197:

Bitte helfen Sie uns. Vielen Dank im Voraus.

101
Sreeram

Unter Windows können Sie auch die Umgebungseigenschaft OPENSSL_CONF einstellen. Zum Beispiel können Sie über die Befehlszeile Folgendes eingeben:

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

um es zu bestätigen, können Sie Folgendes eingeben:

echo %OPENSSL_CONF%

Sie können es auch als Teil der Umgebungsvariablen des Computers festlegen, sodass es standardmäßig für alle Benutzer und Dienste verfügbar ist. Siehe zum Beispiel Umgebungsvariablen in Windows NT und So verwalten Sie Umgebungsvariablen in Windows XP .

Jetzt können Sie openssl-Befehle ausführen, ohne den Parameter config location übergeben zu müssen.

128
dvtoever

Fügen Sie einfach den Parameter -config c:\your_openssl_path\openssl.cfg in Ihre Befehlszeile ein und ändern Sie your_openssl_path in den tatsächlich installierten Pfad.

37
Nikl

Erstellen Sie einfach eine openssl.cnf-Datei wie folgt in Schritt 4: http://www.flatmtn.com/article/setting-openssl-create-certificates

Edit after link funktionierte nicht mehr Der Inhalt der Datei openssl.cnf war folgender:

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

Sie können die Seite trotzdem mit Waybackmachine finden: https://web.archive.org/web/20171108102046/http://www.flatmtn.com/article/setting-openssl-create-certificates

21
Sam

Versuchen Sie einfach, openssl.exe als Administrator auszuführen.

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

achten Sie auf die richtige Erweiterung (openssl.cfg nicht cnf)!

Ich habe OpenSSL von hier installiert: http://slproweb.com/products/Win32OpenSSL.html

11
user669677

Wenn Sie Apache mit OpenSSL installiert haben, navigieren Sie zum Verzeichnis bin. In meinem Fall D:\Apache\bin.

* Diese Befehle funktionieren auch, wenn Sie openssl eigenständig installieren.

Führen Sie diese Befehle aus:

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

* Dadurch wird ein selbstsigniertes Zertifikat erstellt, das Sie für Entwicklungszwecke verwenden können

Wenn Sie Apache in der httpd.conf installiert haben, bleiben Sie wie folgt:

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

Ich hatte gerade einen ähnlichen Fehler bei der Verwendung der Datei openssl.exe aus dem Ordner "Apache für Windows". Ich hatte das -config-Flag angegeben durch einen Tippfehler im Pfad der Datei openssl.cnf. Ich denke du wirst das finden

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

sollte sein

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

Hinweis: Das conf sollte wahrscheinlich cnf sein.

7
Nic Cottrell

Wenn die Installation von openssl erfolgreich war, suchen Sie nach "OPENSSL" im Laufwerk c, um die Konfigurationsdatei zu suchen, und legen Sie den Pfad fest.

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

Es hat für mich geklappt.

4
hermes101

Das Problem hier ist, dass es ISN'T keine openssl.cnf -Datei gibt, die mit dem GnuWin32 openssl-Zeugs angegeben wurde. Du musst es schaffen. Wie Sie eine openssl.cnf -Datei erstellen, erfahren Sie hier:

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

Wo es alles für Sie darlegt, wie es geht.

BITTE BEACHTEN SIE: Der Befehl openssl, der mit dem Backslash am Ende angegeben wird, gilt für UNIX. Für Windows: 1) Entfernen Sie den Backslash und 2) Verschieben Sie die zweite Zeile nach oben, so dass sie sich am Ende der ersten Zeile befindet. (Sie erhalten also nur einen Befehl.)

AUCH: Es ist sehr wichtig, die Kommentare durchzulesen. Es gibt einige Änderungen, die Sie möglicherweise basierend auf diesen Änderungen vornehmen möchten.

2
Mark Manning

Diese Problemumgehung hat uns bei meinem Job (technischer Support) so sehr geholfen, dass wir eine einfache Batchdatei erstellt haben, die wir von überall ausführen können (Wir hatten nicht die Berechtigung, sie zu installieren). Diese Problemumgehung setzt die Variable und führt dann OpenSSL für Sie aus. Außerdem wird der bin-Ordner für Sie geöffnet (da hier alle Dateien gespeichert werden, die Sie erstellen oder ändern). Dies gilt auch nur für Windows.

Wie stellt man das ein:

  1. Laden Sie die OpenSSL-Binaries hier herunter. (Beachten Sie, dass dies für die Version 0.9.8h bestätigt wurde.)
  2. Kopieren Sie diesen Code in eine Datei mit dem Namen StartOpenSSL.bat. Speichern Sie dies an einem Ort Ihrer Wahl. Es kann von überall ausgeführt werden.

    @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. Wenn Sie die OpenSSL-Binärdateien heruntergeladen haben, extrahieren Sie sie in einem Ordner mit dem Namen OpenSSL auf Ihr Laufwerk C: (Der Pfad muss C:\OpenSSL sein). Verschieben Sie keine Ordnerinhalte, sondern extrahieren Sie sie einfach in den Ordner.
  4. Sie können OpenSSL verwenden. Dies ist eine großartige Lösung für Windows-Benutzer, die nicht über die Berechtigung zur Installation verfügen, da keine Berechtigungen erforderlich sind. Führen Sie einfach die bat-Datei von früher aus, indem Sie darauf doppelklicken.
1
Rex Linder

Wenn Sie einen Fehler sehen, so etwas 

fehler in Zeile -1 c: apacheconfopenssl.cnf

versuchen Sie in der -config, vom hinteren Schrägstrich zum vorderen Schrägstrich zu wechseln.

1
Jauyzed

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

  1. stellen Sie zunächst sicher, dass sich eine openssl.cnf-Datei im richtigen Pfad befindet.
  2. wenn Sie es nicht finden können, brauchen Sie nur download one und kopieren Sie es in Ihren Einstellungspfad.
$ echo %OPENSSL_CONF%

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

Führen Sie den Befehl als Administrator aus und kopieren Sie die Konfigurationsdatei an eine Stelle, an der Sie Leserechte haben, und geben Sie den Pfad mit dem Parameter -config an.

0
Dexion

Ich weiß, dass dies alt ist - aber davon auszugehen, dass andere, die hier vorkommen (und Visual Studio verwenden), davon profitieren könnten. Ich habe dies in einem anderen Beitrag gelesen, den ich scheinbar nicht finde.

Öffnen Sie Ihre Konfiguration in Notepad ++ und stellen Sie sicher, dass die Kodierung UTF-8 ist (d. H. Nicht UTF-8-BOM *).

Das hätte mir eine Menge Suchen/Trial'n'Ror erspart ...

0
jimnkey

Ich hatte das gleiche Problem unter Windows. Es wurde behoben, indem die Umgebungsvariable wie folgt festgelegt wurde:

Variablenname: OPENSSL_CONF Variablenwert: C: (OpenSSl-Verzeichnis)\bin\openssl.cnf

0
Braullio Soares