1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 域名 > 正文

域名

IP地址也能申请ssl证书啦!想开启https访问?先部署ssl证书再说!

1987web2023-09-26域名195

Kimjie, 江湖人也称金杰。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构、大数据与自动化运维,曾负责国内某大型电商运维工作。

问题:昨天使用Cloudflare做域名解析时,访问Cloudflare公共DNS服务的官网,发现网站竟然是https://1.0.0.1!

恕我孤陋寡闻,这是生平第一次见到以https方式访问公网IP。用多款浏览器测试,均认为这是一个合法的请求地址。查看证书,是由DigiCert签发的合法证书:

可以明确以下事实:

  1. 1.0.0.1肯定是一个IP;

  2. .1不是顶级域名后缀(TLD);

  3. 1.0.0.1不是域名/主机名(FQDN);

  4. 平时极少以https访问IP。

总结起来一句话:能给IP颁发合法SSL证书?

解答

在superuser网站上,有类似的疑惑:Why does my browser think that https://1.0.0.1 is secure?。根据网友答案,可以给公网IP颁发证书,但罕见

确认可以为IP签发证书,继续查资料,找到如下信息:

IP只能签发OV证书;要验证企业名称合法性,以及根据whois信息验证对IP的所有权。

个人不能为IP申请证书;如果没有IP所有权,企业或机构从云厂商获取到的IP也不能申请证书,因为有使用权但没有所有权。域名比IP(相对)更容易获取,并且一个域名可以对应多个IP,故而极少有为IP申请证书的情况。

测试

弄清楚其中道理,接下来验证一下与理论是否相符。

先请出免费获取证书的Lets Encryptcertbot工具,尝试为IP颁发证书,输出如下:

[root@xxxx~]certbot certonly--standalone-d xxx.xxx.xxx.xxxRequestedname xxx.xxx.xxx.xxxisan IP address.TheLets Encrypt certificate authority will not issue certificates for a bare IP address.

结论:Lets Encrypt不能为IP签发证书!

然后我又在网上搜了一下,确实有一些为IP签发ssl证书的,比如到www.ipssl.com.cn这个网站上就能申请到。

目前有很多针对域名的流量劫持等攻击,使用IP地址并配置IP SSL证书能有效避免这类攻击。

那么申请到ip或域名的ssl证书之后,我们如何配置到服务器上呢?下面贴出nginx配置ssl证书开启https供大家参考:

nginx.conf中配置

server{listen443;server_nameexample.com;root/usr/share/nginx/www;indexindex.htmlindex.htm;sslon;ssl_certificate/etc/nginx/ssl/server.crt;ssl_certificate_key/etc/nginx/ssl/server.key;}

如果想把 http 的请求转到 https 的话:

server{listen80;server_nameexample.me;rewrite^https://$server_name$request_uri?permanent;}

觉得不错,点个在看然后转发出去