Назад | Перейти на главную страницу

альтернативные имена openssl отсутствуют

Я создал CA с этим статья, и сохранил его в моей машине. Теперь я хочу создать сертификат сервера и использовать его на своем веб-сервере. Это мой код сертификата сервера:

#!/bin/bash
# USE: ./build.sh <CERTNAME> <EXPR_DAYS>

openssl genrsa -out $1.key 2048

openssl req -new -key $1.key -out $1.csr -config ssl.config

openssl x509 -req -in $1.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out $1.pem -days $2 -sha256

Этот код генерирует сертификат, но отсутствуют альтернативные имена, как указано в моем ssl.config файл:

[ req ]
default_bits        = 2048
default_keyfile     = server-key.pem
distinguished_name  = subject
req_extensions      = extensions
x509_extensions     = extensions
string_mask         = utf8only
prompt              = no

[ subject ]
countryName         = US
stateOrProvinceName = NY
localityName        = New York
organizationName    = Company
commonName          = API
emailAddress        = test@example.com

[ extensions ]
basicConstraints            = CA:TRUE
keyUsage                    = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectKeyIdentifier        = hash
extendedKeyUsage            = serverAuth
subjectAltName              = @alternate_names

[ alternate_names ]
IP.1=1.2.3.4
IP.2=2.3.4.5

Чтобы убедиться, что альтернативное имя отсутствует, я запускаю:

$ openssl x509 -in cert.pem -noout -text
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            79:d5:7d:02:10:fb:2e:55:1c:19:7d:13:d8:e4:cb:ee:91:16:36:34
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = Some-State, O = Company
        Validity
            Not Before: Oct 13 10:38:26 2019 GMT
            Not After : Feb 27 10:38:26 2047 GMT
        Subject: C = US, ST = NY, L = New York, O = Company, CN = API, emailAddress = test@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                        XXXX
                Exponent: XXXX (XXX)
    Signature Algorithm: sha256WithRSAEncryption
            XXXX

Как видите, раздел альтернативного имени отсутствует. Я ожидал увидеть:

X509v3 Subject Alternative Name: IP:1.2.3.4, IP:2.3.4.5

Что я делаю не так?

Нашел проблему.

Это:

openssl x509 -req -in $1.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out $1.pem -days $2 -sha256

стал таким:

openssl x509 -req -in $1.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out $1.pem -days $2 -sha256 -extensions v3_req -extfile ssl.config