openssl create csr template error “Nenhum modelo, por favor configure um.”

1

Estou tentando criar um csr em uma imagem do Amazon Linux AMI 2017.03.0. Eu corro o seguinte comando para gerar o test.key

[root]# openssl genrsa -out test.key 2048
Generating RSA private key, 2048 bit long modulus
............+++
.........................+++
e is 65537 (0x10001)
[root]#

Eu então executo o seguinte:

[root]# openssl req -new -sha256 -key test.key -out test.csr
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.
-----
No template, please set one up.
problems making Certificate Request
[root]#

O modelo "No template, please set one up" parece estar relacionado ao arquivo openssl.conf

Minha configuração openssl é a seguinte:

[root]# pwd
/etc/ssl
[root]# ls -al
total 12
drwxr-xr-x  2 root root 4096 Apr  3 22:53 .
drwxr-xr-x 82 root root 4096 Apr 21 10:54 ..
lrwxrwxrwx  1 root root   16 Jan 20 23:25 certs -> ../pki/tls/certs
-rw-r--r--  1 root root  138 Apr  3 22:53 openssl.cnf
[root]# cat openssl.cnf
[ ssl_client ]
basicConstraints = CA:FALSE
nsCertType = client
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
[root]# rpm -q -a |grep openssl
openssl-1.0.1k-15.99.amzn1.x86_64
[root]#

Parece não haver muita informação sobre a criação de modelos openssl, alguém pode me ajudar ou me fornecer um link para exemplos ou tutorial.

    
por bazza2000 07.05.2017 / 13:08

1 resposta

2

O que você tem na sub-rotina ssl_client não se aplicará ao fazer o csr. Na verdade, esses são atributos estendidos x509v3 normalmente adicionados ao certificado pela CA ao assinar o CSR e são referenciados pelo nome da sub-rotina:

openssl x509 ... -extensions ssl_client

Se você precisar preencher o campo de assunto, você deve usar algo como:

openssl req -new -sha256 -key test.key -out test.csr -subj "/C=SM/ST=somecountry/L=someloc/O=someorg/OU=somedept/CN=exa‌​mple.com"

Também existem maneiras de especificar padrões através da sub-rotina req e req_distinguished_name . Especificando no req , você configura os padrões para o comando openssl req ... . Especificando req_distinguished_name , você pode definir limitações nos componentes DN do assunto e também definir padrões para a criação interativa de CSR que você normalmente invoca com openssl req -new ... e tal.

Os padrões podem ser definidos da seguinte forma:

[ req_distinguished_name ]
countryName_default             = SM
stateOrProvinceName_default     = somecountry
localityName_default            = someloc
...

Existem duas páginas impressionantes às quais eu geralmente me refiro quando quero fazer algo com a linha de comando openssl:

link

link

    
por 08.05.2017 / 09:13

Tags