当前位置: 首页 > article >正文

Nginx不使用域名如何配置证书

如果你不打算使用域名而是使用 IP 地址来配置 Nginx 的 SSL 证书,你会遇到一个问题,因为 SSL/TLS 证书通常是为特定的域名颁发的,而不是 IP 地址。虽然可以为 IP 地址生成证书,但大多数证书颁发机构(CA)不支持为 IP 地址颁发证书,或者会对其进行严格的限制。

解决方法:

  1. 自签名证书(Self-signed certificate)
    你可以为 IP 地址生成一个自签名证书。虽然它不会被浏览器自动信任(会提示不受信任的证书),但是你可以在需要的客户端设备上手动信任这个证书。

    以下是生成自签名证书的步骤:

    # 生成私钥
    openssl genpkey -algorithm RSA -out server.key
    
    # 生成自签名证书,假设使用 IP 地址作为 Common Name
    openssl req -new -x509 -key server.key -out server.crt -days 365 -subj "/CN=your_ip_address"
    

    这里的 your_ip_address 应该替换为你的服务器的 IP 地址。

    然后将证书和私钥放置到 Nginx 配置的合适目录中,例如 /etc/nginx/ssl/

    在 Nginx 配置文件中配置 SSL 证书:

    server {
        listen 443 ssl;
        server_name your_ip_address;
    
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
    
        location / {
            # 配置你的站点内容
        }
    }
    
  2. 使用 IP 地址作为 SAN (Subject Alternative Name)
    如果你不想使用自签名证书,并且需要更广泛的信任,可以尝试通过证书颁发机构请求为你的 IP 地址颁发证书。某些证书颁发机构(例如 Let’s Encrypt)不支持为 IP 地址颁发证书,但你可以使用一些商业 CA,它们允许为特定的 IP 地址颁发证书。通常,这要求你证明你对该 IP 地址的控制权。

  3. 强烈建议使用域名
    如果可能,建议使用域名而不是 IP 地址,因为这不仅能简化证书管理,还能避免自签名证书带来的信任问题。大多数现代浏览器和用户习惯都偏向于使用域名访问网站,并且大多数 CA 都不再支持为 IP 地址颁发证书。

总结:如果仅是为了在局域网或私有环境中使用,使用自签名证书可以满足需求,但在公网环境下使用 IP 地址作为证书的主体并不常见。


http://www.kler.cn/a/470886.html

相关文章:

  • 游戏引擎学习第77天
  • 寒假刷题Day1
  • Mysql--基础篇--函数(字符串函数,日期函数,数值函数,聚合函数,自定义函数及与存储过程的区别等)
  • UDP -- 简易聊天室
  • Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录
  • 9. C 语言 循环控制结构详解
  • 谷歌浏览器的高级开发者工具使用指南
  • Ubuntu下安装Android Sdk
  • HarmonyOS NEXT 应用开发练习:AI智能语音播报
  • 云开发 Copilot:AI 赋能的低代码革命
  • leetcode(hot100)8、9
  • java设计模式 单例模式
  • 【python】json库处理JSON数据
  • 论文复现6:
  • 微服务框架,Http异步编程中,如何保证数据的最终一致性
  • Linux高并发服务器开发 第九天(gdb调试器/基础指令 栈帧)
  • latex学习记录
  • 网络安全漏洞防护技术原理与应用
  • 【RK3588 Linux 5.x 内核编程】-Misc设备驱动
  • 【JMeter】单接口
  • 关于IDE的相关知识之二【插件推荐】
  • Freemarker模板进行判空
  • 【行空板K10】获得当前所在城市及JSON库的移植:
  • 《机器学习》——逻辑回归基本介绍
  • 122.【C语言】数据结构之快速排序(Hoare排序的优化)
  • 【STM32】VSCode打开STM32工程时结构体和宏报错问题解决