automatiza a geração de certificados SSL

1

Como posso automatizar a geração de certificados auto-assinados quando conheço o nome de domínio?

Isso funciona, mas me pede na linha de comando para fazer algumas perguntas.

Como devo alterá-lo para ignorar as perguntas e inserir automaticamente o FQDN?

#! /bin/bash

echo 01 > ca.srl
openssl genrsa -des3 -out ca-key.pem
openssl req -new -x509 -days 365 -key ca-key.pem -out ca.pem

openssl genrsa -des3 -out server-key.pem
openssl req -new -key server-key.pem -out server.csr

openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -out server-cert.pem

openssl genrsa -des3 -out client-key.pem
openssl req -new -key client-key.pem -out client.csr

echo extendedKeyUsage = clientAuth > extfile.cnf

openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -out client-cert.pem -extfile extfile.cnf

openssl rsa -in server-key.pem -out server-key.pem
openssl rsa -in client-key.pem -out client-key.pem
    
por astropanic 11.08.2015 / 23:35

3 respostas

1

Obrigado, eu ri. Se você sabe que deseja criar multiplos de certificados, configure uma CA privada.

Mas, se você insiste, a criação de um certificado auto-assinado é apenas uma linha.

openssl req -newkey rsa:4096 -x509 -extensions x509_ca -keyout $HOME/ca.key -out $HOME/ca-$(date +%Y%m%d-%H%M).crt -days 3654

Isso, supondo que você tenha pré-configurado corretamente o arquivo openssl.conf.

Você precisará passar os valores do subjectAltName por meio de variáveis de ambiente, embora eles não possam ser especificados na linha de comando.

Ou seja:

SSLSAN="email:copy,DNS:www.example.org" openssl req …

E no arquivo openssl.conf:

# Global:
SSLSAN = email:copy
…
[req]
subjectAltName = ${ENV::SSLSAN}
…
[ org1_policy ]
subjectAltName          = optional
    
por 17.09.2015 / 01:47
0

Uau, isso é muito mais do que você precisa. Aqui está o que eu faço:

openssl genrsa -out /etc/ssl/private/${name}.pem 2048
openssl req -new -key /etc/ssl/private/${name}.pem -subj /CN=${name}/ -out /etc/ssl/${name}.csr
openssl x509 -req -days 3650 -in /etc/ssl/${name}.csr -signkey /etc/ssl/private/${name}.pem -out /etc/ssl/certs/${name}.pem
    
por 12.08.2015 / 00:58
0

Acho que a maneira de fazer isso é criar um diretório separado para sua CA. Coloque seus certificados de assinatura da AC lá e crie o arquivo de configuração com a maioria dos atributos pré-preenchidos (ou seja, O, OU, DC, Assunto Alternativo, etc.). Em seguida, gere um certificado fornecendo o nome do perfil desejado e o FQDN na linha de comando.

Eu não tenho um exemplo, mas você pode encontrar mais detalhes na documentação do OpenSSL.

    
por 19.08.2015 / 23:49