Como especifico subjectAltName no openssl cli?

8

Estou gerando um certificado SSL autoassinado:

$ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com'

Gostaria de especificar um subjectAltName também no momento da criação, mas não consigo encontrar informações na página do openssl em como fazer isso.

    
por Travis J Webb 25.08.2014 / 20:43

3 respostas

4

Tente escrever subjectAltName em um arquivo temporário (vou nomear hostextfile ) como

basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=email:[email protected],RID:1.2.3.4

e link para ele no comando openssl através da opção "-extfile", por exemplo:

openssl ca -days 730 -in hostreq.pem -out -hostcert.pem -extfile hostextfile
    
por 18.11.2014 / 13:15
3

O comando openssl não fornece uma maneira de incluir extensões como subjectAltName sem antes gravar um arquivo de configuração. Eu escrevi um utilitário simples que faz tudo automaticamente. Está disponível no github: link

Exemplo de uso:

./certify example.com www.example.com mail.example.com

Isso criará um arquivo chamado example.com.crt que contém um certificado com os nomes alternativos de assunto de example.com, www.example.com e mail.example.com.

    
por 12.03.2015 / 20:52
0

Crie um certificado autoassinado com SubjectAltName

cd /etc/ssl

cat > my.conf <<- "EOF"
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=UA
ST=Dnepropetrovskaya
L=Kamyanske
O=DMK
OU=OASUP
emailAddress=webmaster@localhost
CN = www.dmkd.dp.ua

[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.0 = www.dmkd.dp.ua
DNS.1 = dmkd.dp.ua

EOF

# Create key
openssl genrsa -des3 -out server.key.secure 2048
# Disable secret phrase for key
openssl rsa -in server.key.secure -out server.insecure.key
# Create request certificate file with params from file my.conf
openssl req -new -key server.insecure.key -out server.csr -config my.conf
# Create certificate with params from file my.conf
openssl x509 -req -days 365 -in server.csr -signkey server.insecure.key -out server.crt -extensions req_ext -extfile my.conf
# Check request file and certificate for SubjectAltName precense
openssl req -text -noout -in server.csr
openssl x509 -in server.crt -text -noout
    
por 13.05.2017 / 14:45