You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无合法FQDN能否生成Let's Encrypt证书?Azure VM求解决方案

解决无公共域名时PostgreSQL SSL证书生成问题

问题核心

Let's Encrypt要求申请证书的域名必须是带点的合法公共域名(如example.com),纯主机名(zz-ubuntu1)不符合规则,且没有公共域名无法完成域名所有权验证,因此Certbot无法生成证书。以下是不依赖公共域名、不影响现有PostgreSQL的解决方案:

方案一:生成自签名SSL证书(适合内部/私有网络场景)

自签名证书可满足加密需求,仅需客户端信任该证书即可使用:

  1. 生成私钥和证书签名请求(CSR)
    切换到PostgreSQL数据目录(以默认路径为例,根据你的PostgreSQL版本调整):

    cd /var/lib/postgresql/14/main  # 替换为你的实际数据目录
    openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
    

    执行时按提示填写信息,其中Common Name可填写VM的主机名(ZZ-UBUNTU1)或私有IP。

  2. 生成自签名证书

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    

    这里设置有效期为365天,可按需修改天数。

  3. 设置文件权限(关键)
    PostgreSQL运行用户(通常为postgres)需拥有证书文件的读写权限:

    chown postgres:postgres server.key server.crt server.csr
    chmod 600 server.key  # 私钥必须严格限制权限,避免泄露
    chmod 644 server.crt
    
  4. 配置PostgreSQL启用SSL

    • 编辑postgresql.conf:
      ssl = on
      ssl_cert_file = '/var/lib/postgresql/14/main/server.crt'  # 替换为你的证书路径
      ssl_key_file = '/var/lib/postgresql/14/main/server.key'    # 替换为你的私钥路径
      
    • 编辑pg_hba.conf,确保允许SSL连接(根据你的认证方式调整):
      hostssl all all 0.0.0.0/0 scram-sha-256  # 允许所有IP通过SSL连接,认证方式按需修改
      
  5. 重启PostgreSQL服务

    sudo systemctl restart postgresql
    
  6. 验证SSL连接
    使用psql测试SSL连接:

    psql "host=localhost port=5432 dbname=your_database user=your_user sslmode=require"
    

    连接成功后执行以下命令确认SSL已启用:

    SELECT ssl_is_used();
    

    返回t表示SSL连接正常。

方案二:客户端信任自签名证书(外部访问场景)

如果需要外部客户端连接,需将生成的server.crt导入客户端的信任存储:

  • Linux客户端:将证书复制到/usr/local/share/ca-certificates/,执行sudo update-ca-certificates
  • Windows客户端:双击证书文件,选择“安装证书”并导入到“受信任的根证书颁发机构”
  • macOS客户端:双击证书文件,在钥匙串访问中设置为“始终信任”

为什么Certbot不可行?

Let's Encrypt的证书颁发机制要求:

  1. 域名必须是公共可解析的(带点的合法域名)
  2. 需通过HTTP-01或DNS-01验证域名所有权
    由于你的VM没有公共域名,无法满足以上条件,因此无法使用Certbot申请Let's Encrypt证书。

内容的提问来源于stack exchange,提问作者Scouse_Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:01:01