Criação não interativa de pedidos de certificado SSL

14

Existe uma maneira de criar solicitações de cert SSL especificando todos os parâmetros necessários no comando inicial? Estou escrevendo um painel de controle do servidor web baseado em CLI e gostaria de evitar o uso de espere ao executar openssl , se possível.

Esta é uma maneira típica de criar uma solicitação de certificado:

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr
Generating a 2048 bit RSA private key
.................................................+++
........................................+++
writing new private key to 'foobar.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Sweden
Locality Name (eg, city) []:Stockholm
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Scandanavian Ventures, Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:foobar.com
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:FooBar

Espero ver algo assim: (exemplo não útil)

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr \
-Country US \
-State "New Sweden" \
-Locality Stockholm \
-Organization "Scandanavian Ventures, Inc." \
-CommonName  foobar.com \
-EmailAddress [email protected] \
-Company FooBar

A boa página man não tinha nada a dizer sobre o assunto, nem eu consegui encontrar nada via Google. A geração de solicitações cert SSL deve ser um processo interativo ou existe alguma maneira de especificar todos os parâmetros em um único comando?

Isto está em uma distribuição Linux derivada do Debian rodando openssl 1.0.1 .

    
por dotancohen 08.12.2014 / 16:03

3 respostas

16

você está perdendo duas partes:

a linha de assunto, que pode ser chamada como

-subj "/C=US/ST=New Sweden/L=Stockholm /O=.../OU=.../CN=.../emailAddress=..."
  • substituindo ... pelo valor, X= sendo código X509 ( O organização / O organização U nit / etc ... )

o valor da senha, que pode ser chamado como

-passout pass:client11
-passin  pass:client11
  • que fornecem uma senha de saída / entrada

minha vocação por uma nova chave parece

openssl genrsa -aes256 -out lib/client1.key -passout pass:client11 1024
openssl rsa -in lib/client1.key -passin pass:client11 -out lib/client1-nokey.key

openssl req -new -key lib/client1.key -subj req -new \
    -passin pass:client11 -out lib/client1.csr \
    -subj "/C=US/ST=New Sweden/L=Stockholm/O=.../OU=.../CN=.../emailAddress=..."

(agora que vejo, há dois -new ...)

    
por 08.12.2014 / 16:47
1

Verifique a opção -batch conforme descrito nos documentos oficiais .

    
por 08.12.2014 / 16:23
0

Eu adiciono ao meu comando openssl regular:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/key.pem -out /etc/ssl/private/cert.pem

Esta linha:

-subj "/C=PE/ST=Lima/L=Lima/O=Acme Inc. /OU=IT Department/CN=acme.com"

Descrição:

  • Nome do país (código de 2 letras) [AU]: PE
  • Estado ou Província Nome (nome completo) [Algum Estado]: Lima
  • Nome da localidade (por exemplo, cidade) []: Lima
  • Nome da organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: Acme Inc.
  • Nome da Unidade Organizacional (por exemplo, seção) []: Departamento de TI
  • Nome comum (por exemplo, FQDN do servidor ou SEU nome) []: acme.com

Use "/" como separador.

    
por 12.11.2018 / 22:34