Ssl 如何与您的证书颁发机构签署证书签名请求?

Ssl 如何与您的证书颁发机构签署证书签名请求?,ssl,openssl,csr,ca,Ssl,Openssl,Csr,Ca,在搜索过程中,我发现了几种对SSL证书签名请求进行签名的方法: 使用x509模块: openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt 使用ca模块: openssl x509 -req -days 36

在搜索过程中,我发现了几种对SSL证书签名请求进行签名的方法:

  • 使用
    x509
    模块:

    openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
    
    openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
    
  • 使用
    ca
    模块:

    openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
    
    openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
    
  • 注:我不确定是否使用了正确的参数。如果我要使用它,请告诉我正确的用法

    您应该使用什么方式与您的证书颁发机构签署证书请求? 一种方法比另一种好吗(例如,一种被弃用)

    你错过了这些命令的前奏

    这是一个分两步的过程。首先设置CA,然后签署最终实体证书(也称为服务器或用户)。这两个命令都将这两个步骤简化为一个步骤。并且都假设您已经为CAs和服务器(终端实体)证书设置了OpenSSL配置文件


    首先,创建一个基本的:

    然后,添加以下内容:

    HOME            = .
    RANDFILE        = $ENV::HOME/.rnd
    
    ####################################################################
    [ ca ]
    default_ca    = CA_default      # The default ca section
    
    [ CA_default ]
    
    default_days     = 1000         # How long to certify for
    default_crl_days = 30           # How long before next CRL
    default_md       = sha256       # Use public key default MD
    preserve         = no           # Keep passed DN ordering
    
    x509_extensions = ca_extensions # The extensions to add to the cert
    
    email_in_dn     = no            # Don't concat the email in the DN
    copy_extensions = copy          # Required to copy SANs from CSR to cert
    
    ####################################################################
    [ req ]
    default_bits       = 4096
    default_keyfile    = cakey.pem
    distinguished_name = ca_distinguished_name
    x509_extensions    = ca_extensions
    string_mask        = utf8only
    
    ####################################################################
    [ ca_distinguished_name ]
    countryName         = Country Name (2 letter code)
    countryName_default = US
    
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = Maryland
    
    localityName                = Locality Name (eg, city)
    localityName_default        = Baltimore
    
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Test CA, Limited
    
    organizationalUnitName         = Organizational Unit (eg, division)
    organizationalUnitName_default = Server Research Department
    
    commonName         = Common Name (e.g. server FQDN or YOUR name)
    commonName_default = Test CA
    
    emailAddress         = Email Address
    emailAddress_default = test@example.com
    
    ####################################################################
    [ ca_extensions ]
    
    subjectKeyIdentifier   = hash
    authorityKeyIdentifier = keyid:always, issuer
    basicConstraints       = critical, CA:true
    keyUsage               = keyCertSign, cRLSign
    
    上面的字段取自更复杂的
    openssl.cnf
    (您可以在
    /usr/lib/openssl.cnf
    中找到),但我认为它们是创建CA证书和私钥的基础

    调整上面的字段以适合您的口味。默认设置可以节省您在尝试配置文件和命令选项时输入相同信息的时间

    我省略了CRL相关的东西,但是你的CA操作应该有它们。请参阅
    openssl.cnf
    和相关的
    crl\u ext
    部分

    然后,执行以下命令。
    -nodes
    省略密码或密码短语,以便您可以检查证书。省略密码或密码短语是一个非常糟糕的想法

    $ openssl req -x509 -config openssl-ca.cnf -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM
    
    执行命令后,
    cacert.pem
    将是CA操作的证书,
    cakey.pem
    将是私钥。回想一下,私钥没有密码或密码短语

    $ openssl req -x509 -config openssl-ca.cnf -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM
    
    您可以使用以下命令转储证书

    $ openssl x509 -in cacert.pem -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 11485830970703032316 (0x9f65de69ceef2ffc)
        Signature Algorithm: sha256WithRSAEncryption
            Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Validity
                Not Before: Jan 24 14:24:11 2014 GMT
                Not After : Feb 23 14:24:11 2014 GMT
            Subject: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (4096 bit)
                    Modulus:
                        00:b1:7f:29:be:78:02:b8:56:54:2d:2c:ec:ff:6d:
                        ...
                        39:f9:1e:52:cb:8e:bf:8b:9e:a6:93:e1:22:09:8b:
                        59:05:9f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A
                X509v3 Authority Key Identifier:
                    keyid:4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A
    
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage:
                    Certificate Sign, CRL Sign
        Signature Algorithm: sha256WithRSAEncryption
             4a:6f:1f:ac:fd:fb:1e:a4:6d:08:eb:f5:af:f6:1e:48:a5:c7:
             ...
             cd:c6:ac:30:f9:15:83:41:c1:d1:20:fa:85:e7:4f:35:8f:b5:
             38:ff:fd:55:68:2c:3e:37
    
    HOME            = .
    RANDFILE        = $ENV::HOME/.rnd
    
    ####################################################################
    [ req ]
    default_bits       = 2048
    default_keyfile    = serverkey.pem
    distinguished_name = server_distinguished_name
    req_extensions     = server_req_extensions
    string_mask        = utf8only
    
    ####################################################################
    [ server_distinguished_name ]
    countryName         = Country Name (2 letter code)
    countryName_default = US
    
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = MD
    
    localityName         = Locality Name (eg, city)
    localityName_default = Baltimore
    
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Test Server, Limited
    
    commonName           = Common Name (e.g. server FQDN or YOUR name)
    commonName_default   = Test Server
    
    emailAddress         = Email Address
    emailAddress_default = test@example.com
    
    ####################################################################
    [ server_req_extensions ]
    
    subjectKeyIdentifier = hash
    basicConstraints     = CA:FALSE
    keyUsage             = digitalSignature, keyEncipherment
    subjectAltName       = @alternate_names
    nsComment            = "OpenSSL Generated Certificate"
    
    ####################################################################
    [ alternate_names ]
    
    DNS.1  = example.com
    DNS.2  = www.example.com
    DNS.3  = mail.example.com
    DNS.4  = ftp.example.com
    
    并用以下内容测试其用途(不要担心
    的任何用途:Yes
    ;请参阅)


    对于第二部分,我将创建另一个易于理解的配置文件。首先,
    触摸
    openssl服务器.cnf
    (您也可以为用户证书制作一个)

    然后打开它,添加以下内容

    $ openssl x509 -in cacert.pem -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 11485830970703032316 (0x9f65de69ceef2ffc)
        Signature Algorithm: sha256WithRSAEncryption
            Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Validity
                Not Before: Jan 24 14:24:11 2014 GMT
                Not After : Feb 23 14:24:11 2014 GMT
            Subject: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (4096 bit)
                    Modulus:
                        00:b1:7f:29:be:78:02:b8:56:54:2d:2c:ec:ff:6d:
                        ...
                        39:f9:1e:52:cb:8e:bf:8b:9e:a6:93:e1:22:09:8b:
                        59:05:9f
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A
                X509v3 Authority Key Identifier:
                    keyid:4A:9A:F3:10:9E:D7:CF:54:79:DE:46:75:7A:B0:D0:C1:0F:CF:C1:8A
    
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage:
                    Certificate Sign, CRL Sign
        Signature Algorithm: sha256WithRSAEncryption
             4a:6f:1f:ac:fd:fb:1e:a4:6d:08:eb:f5:af:f6:1e:48:a5:c7:
             ...
             cd:c6:ac:30:f9:15:83:41:c1:d1:20:fa:85:e7:4f:35:8f:b5:
             38:ff:fd:55:68:2c:3e:37
    
    HOME            = .
    RANDFILE        = $ENV::HOME/.rnd
    
    ####################################################################
    [ req ]
    default_bits       = 2048
    default_keyfile    = serverkey.pem
    distinguished_name = server_distinguished_name
    req_extensions     = server_req_extensions
    string_mask        = utf8only
    
    ####################################################################
    [ server_distinguished_name ]
    countryName         = Country Name (2 letter code)
    countryName_default = US
    
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = MD
    
    localityName         = Locality Name (eg, city)
    localityName_default = Baltimore
    
    organizationName            = Organization Name (eg, company)
    organizationName_default    = Test Server, Limited
    
    commonName           = Common Name (e.g. server FQDN or YOUR name)
    commonName_default   = Test Server
    
    emailAddress         = Email Address
    emailAddress_default = test@example.com
    
    ####################################################################
    [ server_req_extensions ]
    
    subjectKeyIdentifier = hash
    basicConstraints     = CA:FALSE
    keyUsage             = digitalSignature, keyEncipherment
    subjectAltName       = @alternate_names
    nsComment            = "OpenSSL Generated Certificate"
    
    ####################################################################
    [ alternate_names ]
    
    DNS.1  = example.com
    DNS.2  = www.example.com
    DNS.3  = mail.example.com
    DNS.4  = ftp.example.com
    
    如果您正在开发并且需要将您的工作站用作服务器,那么您可能需要为Chrome执行以下操作。否则。我不确定SAN中的IP地址与此实例中的CN之间的关系

    # IPv4 localhost
    IP.1     = 127.0.0.1
    
    # IPv6 localhost
    IP.2     = ::1
    
    然后,创建服务器证书请求。确保省略
    -x509
    *。添加
    -x509
    将创建证书,而不是请求

    $ openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out servercert.csr -outform PEM
    
    执行此命令后,您将在
    servercert.csr
    中有一个请求,在
    serverkey.pem
    中有一个私钥

    你可以再检查一遍

    $ openssl req -text -noout -verify -in servercert.csr
    Certificate:
        verify OK
        Certificate Request:
            Version: 0 (0x0)
            Subject: C=US, ST=MD, L=Baltimore, CN=Test Server/emailAddress=test@example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                        ...
                        f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                        86:e1
                    Exponent: 65537 (0x10001)
            Attributes:
            Requested Extensions:
                X509v3 Subject Key Identifier:
                    1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
                X509v3 Basic Constraints:
                    CA:FALSE
                X509v3 Key Usage:
                    Digital Signature, Key Encipherment
                X509v3 Subject Alternative Name:
                    DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
                Netscape Comment:
                    OpenSSL Generated Certificate
        Signature Algorithm: sha256WithRSAEncryption
             6d:e8:d3:85:b3:88:d4:1a:80:9e:67:0d:37:46:db:4d:9a:81:
             ...
             76:6a:22:0a:41:45:1f:e2:d6:e4:8f:a1:ca:de:e5:69:98:88:
             a9:63:d0:a7
    
    接下来,您必须与您的CA签署


    您几乎可以通过CA对服务器证书进行签名了。CA的
    openssl-CA.cnf
    在发出命令之前还需要两个部分

    首先,打开
    openssl-ca.cnf
    并添加以下两个部分

    ####################################################################
    [ signing_policy ]
    countryName            = optional
    stateOrProvinceName    = optional
    localityName           = optional
    organizationName       = optional
    organizationalUnitName = optional
    commonName             = supplied
    emailAddress           = optional
    
    ####################################################################
    [ signing_req ]
    subjectKeyIdentifier   = hash
    authorityKeyIdentifier = keyid,issuer
    basicConstraints       = CA:FALSE
    keyUsage               = digitalSignature, keyEncipherment
    
    其次,将以下内容添加到
    openssl-CA.cnf
    [CA\u default]
    部分。我早些时候没有使用它们,因为它们会使事情复杂化(当时它们还没有使用)。现在您将看到它们是如何使用的,希望它们会有意义

    base_dir      = .
    certificate   = $base_dir/cacert.pem   # The CA certifcate
    private_key   = $base_dir/cakey.pem    # The CA private key
    new_certs_dir = $base_dir              # Location for new certs after signing
    database      = $base_dir/index.txt    # Database index file
    serial        = $base_dir/serial.txt   # The current serial number
    
    unique_subject = no  # Set to 'no' to allow creation of
                         # several certificates with same subject.
    
    第三,触摸
    index.txt
    serial.txt

    $ touch index.txt
    $ echo '01' > serial.txt
    
    然后,执行以下操作:

    $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out servercert.pem -infiles servercert.csr
    
    Using configuration from openssl-ca.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :ASN.1 12:'MD'
    localityName          :ASN.1 12:'Baltimore'
    commonName            :ASN.1 12:'Test CA'
    emailAddress          :IA5STRING:'test@example.com'
    Certificate is to be certified until Oct 20 16:12:39 2016 GMT (1000 days)
    Sign the certificate? [y/n]:Y
    
    1 out of 1 certificate requests certified, commit? [y/n]Y
    Write out database with 1 new entries
    Data Base Updated
    
    $ openssl x509 -in servercert.pem -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 9 (0x9)
        Signature Algorithm: sha256WithRSAEncryption
            Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Validity
                Not Before: Jan 24 19:07:36 2014 GMT
                Not After : Oct 20 19:07:36 2016 GMT
            Subject: C=US, ST=MD, L=Baltimore, CN=Test Server
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                        ...
                        f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                        86:e1
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
                X509v3 Authority Key Identifier:
                    keyid:42:15:F2:CA:9C:B1:BB:F5:4C:2C:66:27:DA:6D:2E:5F:BA:0F:C5:9E
    
                X509v3 Basic Constraints:
                    CA:FALSE
                X509v3 Key Usage:
                    Digital Signature, Key Encipherment
                X509v3 Subject Alternative Name:
                    DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
                Netscape Comment:
                    OpenSSL Generated Certificate
        Signature Algorithm: sha256WithRSAEncryption
             b1:40:f6:34:f4:38:c8:57:d4:b6:08:f7:e2:71:12:6b:0e:4a:
             ...
             45:71:06:a9:86:b6:0f:6d:8d:e1:c5:97:8d:fd:59:43:e9:3c:
             56:a5:eb:c8:7e:9f:6b:7a
    
    您应该看到类似于以下内容:

    $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out servercert.pem -infiles servercert.csr
    
    Using configuration from openssl-ca.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :ASN.1 12:'MD'
    localityName          :ASN.1 12:'Baltimore'
    commonName            :ASN.1 12:'Test CA'
    emailAddress          :IA5STRING:'test@example.com'
    Certificate is to be certified until Oct 20 16:12:39 2016 GMT (1000 days)
    Sign the certificate? [y/n]:Y
    
    1 out of 1 certificate requests certified, commit? [y/n]Y
    Write out database with 1 new entries
    Data Base Updated
    
    $ openssl x509 -in servercert.pem -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 9 (0x9)
        Signature Algorithm: sha256WithRSAEncryption
            Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Validity
                Not Before: Jan 24 19:07:36 2014 GMT
                Not After : Oct 20 19:07:36 2016 GMT
            Subject: C=US, ST=MD, L=Baltimore, CN=Test Server
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                        ...
                        f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                        86:e1
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
                X509v3 Authority Key Identifier:
                    keyid:42:15:F2:CA:9C:B1:BB:F5:4C:2C:66:27:DA:6D:2E:5F:BA:0F:C5:9E
    
                X509v3 Basic Constraints:
                    CA:FALSE
                X509v3 Key Usage:
                    Digital Signature, Key Encipherment
                X509v3 Subject Alternative Name:
                    DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
                Netscape Comment:
                    OpenSSL Generated Certificate
        Signature Algorithm: sha256WithRSAEncryption
             b1:40:f6:34:f4:38:c8:57:d4:b6:08:f7:e2:71:12:6b:0e:4a:
             ...
             45:71:06:a9:86:b6:0f:6d:8d:e1:c5:97:8d:fd:59:43:e9:3c:
             56:a5:eb:c8:7e:9f:6b:7a
    
    执行命令后,您将在
    servercert.pem
    中获得一个新创建的服务器证书。私钥是较早创建的,可在
    serverkey.pem
    中找到

    最后,您可以使用以下内容检查您的新铸造证书:

    $ openssl ca -config openssl-ca.cnf -policy signing_policy -extensions signing_req -out servercert.pem -infiles servercert.csr
    
    Using configuration from openssl-ca.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :ASN.1 12:'MD'
    localityName          :ASN.1 12:'Baltimore'
    commonName            :ASN.1 12:'Test CA'
    emailAddress          :IA5STRING:'test@example.com'
    Certificate is to be certified until Oct 20 16:12:39 2016 GMT (1000 days)
    Sign the certificate? [y/n]:Y
    
    1 out of 1 certificate requests certified, commit? [y/n]Y
    Write out database with 1 new entries
    Data Base Updated
    
    $ openssl x509 -in servercert.pem -text -noout
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 9 (0x9)
        Signature Algorithm: sha256WithRSAEncryption
            Issuer: C=US, ST=MD, L=Baltimore, CN=Test CA/emailAddress=test@example.com
            Validity
                Not Before: Jan 24 19:07:36 2014 GMT
                Not After : Oct 20 19:07:36 2016 GMT
            Subject: C=US, ST=MD, L=Baltimore, CN=Test Server
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:ce:3d:58:7f:a0:59:92:aa:7c:a0:82:dc:c9:6d:
                        ...
                        f9:5e:0c:ba:84:eb:27:0d:d9:e7:22:5d:fe:e5:51:
                        86:e1
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    1F:09:EF:79:9A:73:36:C1:80:52:60:2D:03:53:C7:B6:BD:63:3B:61
                X509v3 Authority Key Identifier:
                    keyid:42:15:F2:CA:9C:B1:BB:F5:4C:2C:66:27:DA:6D:2E:5F:BA:0F:C5:9E
    
                X509v3 Basic Constraints:
                    CA:FALSE
                X509v3 Key Usage:
                    Digital Signature, Key Encipherment
                X509v3 Subject Alternative Name:
                    DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
                Netscape Comment:
                    OpenSSL Generated Certificate
        Signature Algorithm: sha256WithRSAEncryption
             b1:40:f6:34:f4:38:c8:57:d4:b6:08:f7:e2:71:12:6b:0e:4a:
             ...
             45:71:06:a9:86:b6:0f:6d:8d:e1:c5:97:8d:fd:59:43:e9:3c:
             56:a5:eb:c8:7e:9f:6b:7a
    

    前面,您将以下内容添加到
    CA\u default
    copy\u extensions=copy
    。此副本由提出请求的人提供

    如果省略
    copy\u extensions=copy
    ,则服务器证书将缺少主题备用名称(SAN),如
    www.example.com
    mail.example.com

    如果您使用
    copy\u extensions=copy
    ,但不查看请求,那么请求者可能会欺骗您签署从属根(而不是服务器或用户证书)之类的内容。这意味着他/她将能够创建链接回您的受信任根的证书。在签名之前,请确保使用
    openssl req-verify
    验证请求


    如果您省略了
    unique\u subject
    或将其设置为
    yes
    ,则只允许您在受试者的专有名称下创建一个证书

    unique_subject = yes            # Set to 'no' to allow creation of
                                    # several ctificates with same subject.
    
    尝试创建第二个证书时,在使用CA的私钥对服务器的证书进行签名时,将导致以下结果:

    Sign the certificate? [y/n]:Y
    failed to update database
    TXT_DB error number 2
    
    所以
    unique\u subject=no
    非常适合测试


    如果要确保自签名CA、从属CA和最终实体证书之间的组织名称一致,请将以下内容添加到CA配置文件中:

    [ policy_match ]
    organizationName = match
    
    如果要允许更改组织名称,请使用:

    [ policy_match ]
    organizationName = supplied
    

    关于X.509/PKIX证书中DNS名称的处理,还有其他规则。有关规则,请参阅这些文件:

    • RFC 5280
    • RFC6125
    • RFC 6797,附录A
    • RFC 7469
    • CA/浏览器论坛
    • CA/浏览器论坛

    列出了RFC 6797和RFC 7469,因为它们比其他RFC和CA/B文档更具限制性。RFC的6797和7469也不允许IP地址。

    除了@jww的答案之外,我想说的是,op中的配置