Crie um certificado SSL não interativamente [fechado]

18

Eu quero, de forma silenciosa e não interativa, criar um certificado SSL. Ou seja, sem solicitar quaisquer dados.

A maneira normal de criar o certificado seria:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 

Eu tentei o seguinte:

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = [email protected]
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

Mas ainda recebo uma solicitação de dados.

    
por Michael 08.12.2013 / 00:49

2 respostas

38

O que você está perdendo é incluir o assunto do certificado no sinal -subj . Eu prefiro isso para criar um arquivo de configuração porque é mais fácil de integrar em um fluxo de trabalho e não requer limpeza depois.

Chave de um passo e geração de RSE:

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

Geração de certificado sem senha autônoma de um passo:

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

Nenhum desses comandos solicitará dados.

Veja minha resposta para essa pergunta quase idêntica no Superusuário.

    
por 09.12.2013 / 00:30
2

O comando que você está procurando é:

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

Alterações da sua versão:

  • -new é necessário para gerar qualquer coisa
  • -key usado no lugar de -signkey
por 08.12.2013 / 23:14

Tags