自从【ZeroSSL 支持给 IP 地址申请 SSL 证书了,但有瑕疵!】一文发布后,明月一直都没有抽出时间给自己服务器的 IP 地址用上 SSL 证书,今天摸鱼申请配置部署了一下 IP 地址使用 SSL 证书已经成功生效了。明月发现目前网上大部分的教程都是基于宝塔面板的 IP 地址部署 SSL 证书的教程,有关 Nginx 配置文件的非常少,今天就给大家分享一下。
首先,参照【ZeroSSL 支持给 IP 地址申请 SSL 证书了,但有瑕疵!】一文里的申请办法,登录 ZeroSSL 官网直接申请 IP 地址的 SSL 证书即可,免费版的只能申请 90 天有效期的 SSL 证书,并且目前 ZeroSSL 仅仅开放了 Web 端手动更新续期,也就是说 IP 地址 SSL 证书是没有支持 acme 协议的,所以自然也无法在控制台终端借助 acme.sh 脚本来自动续期了,这点儿请大家一定要知悉!
申请到 IP 地址 SSL 证书后,下载证书的时候即可选择证书格式为“Nginx”的压缩包即可解压后可以看到如下图所示的三个文件:
然后上传三个文件到网站指定目录里即可,然后再在 Nginx 配置文件里加上下面的 SSL 证书引用配置代码:
if ($scheme = http) {
return 301 https://$host$request_uri;
}
ssl_certificate /你的证书存放绝对地址/certificate.crt;
ssl_certificate_key /你的证书存放绝对地址/private.key;
proxy_set_header Early-Data $ssl_early_data;
ssl_ciphers "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM";
#ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_buffer_size 1400;
ssl_early_data on; #Early data (0-RTT) (推荐开启)
保存后退出,重启 Nginx 即可生效。
注:记得要修改 IP 地址访问端口为 443 哦,不要像明月给忘了,还是 80 端口。
如此,IP 地址用 SSL 证书就配置好了,还是非常简单的其实,理论上只要你的域名站点已经部署配置过 SSL 证书了,那么基本照搬就能完成 IP 地址 SSL 证书的部署,相对于域名证书唯一的瑕疵就是 IP 地址的 SSL 证书需要每 90 天手动在 Web 端续期更新一下。

关注明月【云服务技术咨询】公众号,免登录/免费阅读
声明:本文为原创文章,版权归明月登楼的博客所有,欢迎分享本文,转载请保留出处!





要是能搞到内网 IP 证书就完美了。
@萧瑟内网证书?有啥用?
@明月登楼项目需要,内网安全测试一般都要符合互联网渗透测试,所以有一个内网认证的证书,是真的很香。
@萧瑟是的,就是不能自动续期,不支持 acme 协议比较郁闷!