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

如何配置AWS EC2实例,通过证书验证允许本人(动态IP)访问公网服务

基于客户端证书的EC2 Web服务访问控制方案

针对你需要从动态IP的笔记本访问EC2上的Web服务,且仅允许自己访问的需求,以下几个开源方案可以实现客户端证书验证的访问控制:

1. Nginx + OpenSSL 自签证书

这是最常用的轻量方案,步骤清晰:

  • 生成证书链:
    先创建CA根证书,再用它签发服务器证书(绑定EC2的IP或域名)和客户端证书:
    # 生成CA根证书
    openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem
    # 生成客户端证书请求并签发,导出为笔记本可用的p12格式
    openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem
    openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem
    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12
    
  • 配置Nginx验证客户端证书:
    在Web服务的Nginx server块中添加以下配置:
    server {
        listen 443 ssl;
        server_name your-ec2-ip;
    
        ssl_certificate /path/to/server-cert.pem;
        ssl_certificate_key /path/to/server-key.pem;
    
        # 启用客户端证书验证
        ssl_client_certificate /path/to/ca-cert.pem;
        ssl_verify_client on;
    
        location / {
            proxy_pass http://localhost:your-service-port;
        }
    }
    
  • 笔记本导入证书:把生成的client.p12导入浏览器或系统证书库,访问EC2的443端口时会自动携带证书,通过验证后即可访问。

2. Caddy 客户端证书验证

Caddy以配置简洁著称,适合快速部署:

  • 编写Caddyfile:
    your-ec2-ip:443 {
        tls /path/to/server-cert.pem /path/to/server-key.pem {
            client_auth {
                require
                trusted_ca_cert_file /path/to/ca-cert.pem
            }
        }
        reverse_proxy http://localhost:your-service-port
    }
    
  • 同样需要提前生成CA、服务器和客户端证书,把客户端证书导入笔记本后,访问EC2地址即可自动完成验证。

3. Traefik 客户端证书验证

如果用Traefik作为反向代理,配置也很简单:

  • 静态配置示例(traefik.yml):
    entryPoints:
      websecure:
        address: ":443"
        http:
          tls:
            clientAuth:
              caFiles:
                - /path/to/ca-cert.pem
              clientAuthType: RequireAndVerifyClientCert
    
    providers:
      file:
        filename: /path/to/dynamic-config.yml
    
  • 动态配置中添加后端服务的路由规则,客户端证书导入笔记本后即可访问。

关键注意事项

  • 把CA根证书导入笔记本的系统信任库,避免浏览器/工具提示证书不安全;
  • EC2安全组只需要开放443端口(HTTPS),无需限制IP,证书验证已经完成了访问控制;
  • 自签证书过期前,用脚本重新生成即可,完全可控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:50:12