168

I have installed OpenSSL 64. I want to use a certificate for my nodejs https server. I ran the following command:

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

But I have got the error:

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)

How can I resolve it?
Is this the right command?

jww
  • 97,681
  • 90
  • 411
  • 885
Himanshu Yadav
  • 13,315
  • 46
  • 162
  • 291

7 Answers7

297

The solution is running this command:

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

or

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

in the command prompt before using openssl command.

Let openssl know for sure where to find its .cfg file.

Alternatively you could set the same variable OPENSSL_CONF in the Windows environment variables.

NOTE: This can happen when using the OpenSSL binary distribution from Shining Light Productions (a compiled + installer version of the official OpenSSL that is free to download & use). This distribution is "semi-officially" linked from OpenSSL's site as a "service primarily for operating systems where there are no pre-compiled OpenSSL packages".

David
  • 5,882
  • 3
  • 33
  • 44
DavAlPi
  • 3,138
  • 1
  • 14
  • 9
25

I've SSL on Apache2.4.4 and executing this code at first, did the trick:
set OPENSSL_CONF=C:\wamp\bin\apache\Apache2.4.4\conf\openssl.cnf

then execute the rest codes..

T.Todua
  • 53,146
  • 19
  • 236
  • 237
komu_Mkeya
  • 404
  • 4
  • 5
11

/usr/local/ssl/openssl.cnf

A path like this means the program has been compiled with either Cygwin or MSYS. If you must use this openssl then you will need an interpreter that understands those paths, like Bash, which is provided by Cygwin or MSYS.

Another option would be to download or compile a Windows Native version of openssl. Using that the program would instead require a path like

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

which would be better suited for the Command Prompt.

Zombo
  • 1
  • 62
  • 391
  • 407
  • No. I think it means it was compiled with OPENSSLDIR: "/usr/local/ssl". Mine was compiled with cl.exe `openssl version -f compiler: cl -D_USING_V110_SDK71_ [..]`. – Paul-Sebastian Manole May 04 '17 at 22:10
8

SOLUTION!

just set -config parameter location correctly, i.e :

openssl ....................  -config C:\bin\apache\apache2.4.9\conf\openssl.cnf
Community
  • 1
  • 1
T.Todua
  • 53,146
  • 19
  • 236
  • 237
  • 5
    This works for "openssl req" but not for "openssl pkcs12". The environment variable worked for both. It is strange that the pkcs12 option does not include the -config switch. – GarDavis Feb 28 '16 at 22:32
  • Funny... `openssl req` ignores `-config` here (Apache/2.4.10 Win64) but setting `OPENSSL_CONF` works fine. – Álvaro González Feb 24 '17 at 14:47
7

In my case I used the binaries from Shining Light and the environment variables were already updated. But still had the issue until I ran a command window with elevated privileges.

When you open the CMD window be sure to run it as Administrator. (Right click the Command Prompt in Start menu and choose "Run as administrator")

I think it can't read the files due to User Account Control.

FlyBy
  • 71
  • 1
  • 1
3

Not sure what is the difference between .cfg & .cnf In my server I couldn't find .cfg or .cnf I had created a new file for the same and placed it in the following folder /usr/local/ssl/bin

executed the

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

went great..

Arnab Nandy
  • 6,472
  • 5
  • 44
  • 50
Dev
  • 39
  • 1
  • 1
1

Simply install Win64 OpenSSL v1.0.2a or Win32 OpenSSL v1.0.2a, you can download these from http://slproweb.com/products/Win32OpenSSL.html. Works out of the box, no configuration needed.

autremoi
  • 261
  • 2
  • 7
  • 1
    That's where I downloaded from, and was going to say that it has the problem described by the OP, but after following advice (from Xero accounting) to restart the computer after installing, I found that it worked with no issues. – Jon Jun 03 '16 at 16:38