15

I am making a self signed certificate using OpenSSL. I want to make the certificate in one go, means that it will not ask me for the input for Company Name, Common Name etc etc. Is there anyway to do this like a switch e.g. /noprompt or any other through which I can input my all fields in one go. Is it possible that the following command takes all arguments in this call which it takes after pressing enter

openssl x509 -req -days 30 -in request.pem -signkey key.pem -out certificate.pem
0

2 Answers 2

26

Edit: This question was closed as a duplicate of OpenSSL without prompt. See my accepted answer there as well. This answer has now been updated with an ECDSA variant as well. If you can use ECDSA you should.

You need to specify the subject as part of your command.

This command is one step, non-interactive, self-signed certificate creation.

RSA version

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key \
    -out www.example.com.cert

ECDSA version

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
    -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key \
    -out www.example.com.cert
2
  • 2
    Brilliant. I didn't know about the non-interactive component and it's exactly what I need to provision a Vagrant VM. Feb 2, 2013 at 19:16
  • Ditto, want automated certs for Vagrant. Nov 20, 2013 at 0:49
0

You can fill a file beforehand to automate the process of creating certificates, in the section named:

"Sample configuration file prompting for field values"

Link: http://www.openssl.org/docs/apps/req.html#EXAMPLES

1
  • Even with that file, the user still has to hit return to confirm each automated value Dec 4, 2012 at 15:12