我正在配置一个具有公共和私有IP的服务器。它没有任何相关的域名。
使用自签名证书访问下面的URL可以正常工作:
https://<PUBLIC IP>:8443但是,当我试图使用它的私有IP访问该服务器时:
wget https://<PRIVATE IP>:8443我得到以下错误:
错误:无法验证由‘/C=?/ST=?/L=?/O=?/CN=?/CN=未知’签发的证书:遇到的自签名证书。错误:证书公共名称“未知”与请求的主机名“”不匹配。若要不安全地连接,请使用`--不检查证书‘。
是否有一种方法可以在配置中指定公共和私有IP都应该被接受?
我还尝试在server.xml中包含包含address属性的多个连接器,但它不起作用。
发布于 2015-11-03 09:39:12
您可以使用两个主机(公共和私有IP)创建证书,如下所述:
http://apetec.com/support/GenerateSAN-CSR.htm
用用SubjectAltName配置ssl请求
使用多个域证书,您可以使用一个证书保护更多的域。主题替代名称是一个X509版本3 (RFC 2459)扩展,允许一个SSL证书指定证书应该匹配的多个名称。SubjectAltName可以包含电子邮件地址、IP地址、常规DNS主机名等。这使用了一个名为SubjectAlternativeName (简称SAN )的SSL特性。
生成证书请求文件
对于一般的SSL证书请求(CSR),openssl不需要太多的篡改。由于我们将在CSR中添加一两个SAN,所以我们需要向openssl conf文件添加一些内容。您需要告诉openssl创建包含x509 V3扩展的CSR,还需要告诉openssl在CSR中包含一个主题可选名称列表。
创建一个openssl配置文件,在req部分中启用subject alternative names (openssl.cnf):。这一节告诉openssl如何处理证书请求(CSR)。在该部分中应该有一个以req_extensions开头的行。我们希望这样做如下:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req这告诉openssl在CSR中包含v3_req部分。现在,我们将深入到v3_req部分,并确保它包括以下内容:
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = MN
localityName = Locality Name (eg, city)
localityName_default = Minneapolis
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Domain Control Validated
commonName = Internet Widgits Ltd
commonName_max = 64
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = kb.example.com
DNS.2 = helpdesk.example.org
DNS.3 = systems.example.net
IP.1 = 192.168.1.1
IP.2 = 192.168.69.14生成一个私钥,您需要确保服务器创建了一个私钥:
openssl genrsa -out san_domain_com.key 2048创建CSR文件
然后使用以下方法生成CSR:
openssl req -new -out san_domain_com.csr -key san_domain_com.key -config openssl.cnf系统会提示您提供有关组织的信息,它将询问您是否希望包含密码(您不需要)。然后,在反馈的方式上,它会以什么都不需要的方式结束。但是您可以看到已经创建了san_domain_com.csr。
我们可以使用以下命令查看csr包含的内容:
openssl req -text -noout -in san_domain_com.csr 您应该会看到如下所示的输出。请注意主题可选名称部分:
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=US, ST=Texas, L=Fort Worth, O=My Company, OU=My Department, CN=server.example
Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit)
Modulus (2048 bit): blahblahblah
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions: X509v3
Basic Constraints: CA:FALSE
X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment
X509v3 Subject Alternative Name: DNS:kb.example.com, DNS:helpdesk.example.com
Signature Algorithm: sha1WithRSAEncryption
blahblahblah 现在我们有了一份新的社会责任。但是,当然,我们必须签署它。
自我签名和创建证书:
openssl x509 -req -days 3650 -in san_domain_com.csr -signkey san_domain_com.key
-out san_domain_com.crt-extensions v3_req -extfile openssl.cnfhttps://stackoverflow.com/questions/33494750
复制相似问题