2013-05-20 11 views
102

Ho installato OpenSSL 64. Desidero utilizzare un certificato per il mio server https nodejs. Ho eseguito il seguente comando:Impossibile aprire il file di configurazione: /usr/local/ssl/openssl.cnf su Windows

openssl genrsa -out subdomain.domain.com.key 1024 

Ma ho avuto l'errore:

WARNING: can't open config file: /usr/local/ssl/openssl.cnf 
Loading 'screen' into random state - done 
Generating RSA private key, 1024 bit long modulus 
.........++++++ 
.........................................++++++ 
unable to write 'random state' 
e is 65537 (0x10001) 

Come posso risolverlo?
È questo il comando giusto?

+0

Creare un file di testo e lo chiamano openssl.cnf. Esempio di contenuto del file: http://www.flatmtn.com/article/setting-openssl-create-certificates#SSLCert-4 – simhumileco

+0

Post Stackoverflow: http://stackoverflow.com/a/43630802/4217744 – simhumileco

risposta

200

La soluzione è in esecuzione questo comando:

set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg 

o

set OPENSSL_CONF=[path-to-OpenSSL-install-dir]\bin\openssl.cfg 

nel richiamo di ordine prima dell'uso openssl comando.

Lasciate che openssl sappiate dove trovare il file .cfg.

In alternativa è possibile impostare la stessa variabile OPENSSL_CONF nelle variabili di ambiente di Windows.

NOTA: questo può accadere quando si utilizza OpenSSL binary distribution from Shining Light Productions (una versione compilata + dell'installatore di OpenSSL ufficiale che è possibile scaricare gratuitamente l'uso di &). Questa distribuzione è "semi-ufficialmente" collegata dal sito di OpenSSL come "servizio principalmente per sistemi operativi in ​​cui non ci sono pacchetti OpenSSL pre-compilati".

+0

Assicurati di creare una variabile utente. Nel mio caso, la creazione di un var di sistema non risolve il problema. – birken25

+2

Non funziona e ho controllato la var OPENSSL_CONF nella console ed è impostata. –

8

/usr/local/ssl/openssl.cnf

Un percorso come questo significa che il programma è stato compilato sia con Cygwin o MSYS. Se devi usare questo openssl allora avrai bisogno di un interprete che capisca quei percorsi, come Bash, che è fornito da Cygwin o MSYS.

Un'altra opzione potrebbe essere quella di scaricare o compilare una versione nativa di Windows di openssl. Usando che il programma richiederebbe invece un percorso come

C:\Users\Steven\ssl\openssl.cnf 

quale sarebbe più adatto per il prompt dei comandi.

+0

No. I pensa che sia stato compilato con OPENSSLDIR: "/ usr/local/ssl". Il mio è stato compilato con cl.exe 'openssl version -f compilatore: cl -D_USING_V110_SDK71_ [..]'. –

10

Ho SSL su Apache2.4.4 e l'esecuzione di questo codice in un primo momento, ha fatto il trucco:
set OPENSSL_CONF=C:\wamp\bin\apache\Apache2.4.4\conf\openssl.cnf

quindi eseguire i codici di riposo ..

+0

Questo ha funzionato per me su Windows 2008 R2 con Win64OpenSSL_Light-1_1_0c +1 – Cyclonecode

3

Non so qual è la differenza tra .cfg & .cnf nel mio server non riuscivo a trovare .cfg o .cnf avevo creato un nuovo file per la same e lo mise nella cartella seguente /usr/local/ssl/bin

eseguito il

.\openssl genrsa -des3 -out <key name>.key 2048 

andato grande ..

1

Basta installare Win64 OpenSSL v1.0.2a o Win32 OpenSSL v1.0.2a, è possibile scaricare questi da http://slproweb.com/products/Win32OpenSSL.html. Funziona fuori dalla scatola, nessuna configurazione necessaria.

+1

Ecco da dove ho scaricato, e stavo per dire che ha il problema descritto dall'OP, ma dopo aver seguito i consigli (dalla contabilità Xero) per riavviare il computer dopo l'installazione, ho scoperto che funzionava senza problemi. – Jon

6

Nel mio caso ho usato i binari di Shining Light e le variabili di ambiente erano già state aggiornate. Ma ha ancora avuto il problema fino a quando non ho eseguito una finestra di comando con privilegi elevati.

Quando si apre la finestra CMD, assicurarsi di eseguirlo come amministratore. (Fare clic con il pulsante destro del prompt dei comandi nel menu Start e scegliere "Esegui come amministratore")

Penso che non possa leggere i file a causa del controllo dell'account utente.

6

SOLUZIONE!

appena impostato -config posizione parametro correttamente, cioè:

openssl .................... -config C:\bin\apache\apache2.4.9\conf\openssl.cnf 
+2

Funziona per "openssl req" ma non per "openssl pkcs12". La variabile di ambiente ha funzionato per entrambi. È strano che l'opzione pkcs12 non includa l'opzione -config. – GarDavis

+0

Divertente ... 'openssl req' ignora' -config' qui (Apache/2.4.10 Win64) ma l'impostazione 'OPENSSL_CONF' funziona correttamente. –

Problemi correlati