http://192.0.2.2/...
和https://192.0.2.2/...
这样的URL来获取静态内容,以避免请求中不必要的cookies,并避免额外的DNS请求。是否有办法为此获得SSL证书?
http://192.0.2.2/...
和https://192.0.2.2/...
这样的URL来获取静态内容,以避免请求中不必要的cookies,并避免额外的DNS请求。根据这个回答,这是可能的,但很少使用。
至于如何获得它:我会尝试向您选择的提供商订购一个,并在订购过程中输入IP地址而不是域名。
然而,仅仅为了避免DNS查找而在IP地址上运行站点听起来非常像不必要的微观优化。在最好的情况下,每次访问可以节省几毫秒,因为DNS结果被缓存在多个级别上。
我认为从优化的角度来看,您的想法是没有意义的。
来源:
没错。Cloudflare 使用它作为其 DNS 指令首页:https://1.1.1.1
通用名称
字段是cloudflare-dns.com
,而1.1.1.1
仅列在证书主题备用名称
下。 - bitinerant向公共IP地址颁发SSL证书
SSL证书通常颁发给完全限定域名(FQDN),例如 "https://www.domain.com"。然而,一些组织需要将SSL证书颁发给公共IP地址。此选项允许您在证书签名请求(CSR)中指定公共IP地址作为公共名称。然后,发放的证书可以直接用于与公共IP地址建立安全连接(例如,https://123.456.78.99)。
#!/bin/bash
#using: OpenSSL 1.1.1c FIPS 28 May 2019 / CentOS Linux release 8.2.2004
C=US ; ST=Confusion ; L=Anywhere ; O=Private\ Subnet ; EMAIL=admin@company.com
BITS=2048
CN=RFC1918
DOM=company.com
SUBJ="/C=$C/ST=$ST/L=$L/O=$O/CN=$CN.$DOM"
openssl genrsa -out ip.key $BITS
SAN='\n[SAN]\nsubjectAltName=IP:192.168.1.0,IP:192.168.1.1,IP:192.168.1.2,IP:192.168.1.3,IP:192.168.1.4,IP:192.168.1.5,IP:192.168.1.6,IP:192.168.1.7,IP:192.168.1.8,IP:192.168.1.9,IP:192.168.1.10'
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf
echo -e "$SAN" >> /tmp/openssl.cnf
openssl req -subj "$SUBJ" -new -x509 -days 10950 \
-key ip.key -out ip.crt -batch \
-set_serial 168933982 \
-config /tmp/openssl.cnf \
-extensions SAN
openssl x509 -in ip.crt -noout -text
openssl.cnf
位于/usr/lib/ssl/
中,尽管它实际上是一个符号链接,但仍然是由openssl version -d
提供的位置。 - Heath Raftery这完全取决于颁发证书的证书机构。
就Let's Encrypt CA而言,他们不会为公共IP地址颁发TLS证书。 https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082
要知道您的证书颁发机构,您可以执行以下命令并查看所标记的条目。
curl -v -u <username>:<password> "https://IPaddress/.."
C/A浏览器论坛制定了证书中有效和无效的内容,以及CA应该拒绝哪些内容。
根据他们的《公开信任证书的颁发和管理基线要求》文件,自2015年起,CA不得颁发常用名称或常用备用名称字段包含保留IP或内部名称的证书,其中保留IP地址是IANA列出的保留IP地址 - 包括所有NAT IP - 而内部名称是任何不能在公共DNS上解析的名称。
公共IP地址可以使用(基线要求文档指定了CA必须执行哪些检查以确保申请人拥有IP)。