如何在Docker Node.js + nginx代理场景下使用AWS ACM Private证书
AWS ACM私有CA生成的pem文件使用指南
基础文件说明
Certificate.pem:即你申请的终端实体证书本身,包含公钥、主体身份信息、有效期、CA签名信息,和对应的私钥配合即可完成TLS加密场景下的身份验证CertificateChain.pem:完整信任链文件,包含从你的私有根CA到所有层级中间CA(如有配置)的证书序列,作用是让访问端可以顺着链追溯到信任的根CA,验证终端证书的合法性
常见使用场景操作
场景1:部署到Web服务器(Nginx/Apache等)
- Nginx配置:
- 把
Certificate.pem、证书对应的私钥文件、CertificateChain.pem上传到服务器指定目录,比如/etc/nginx/cert/ - 先执行命令拼接完整证书链:
cat Certificate.pem CertificateChain.pem > fullchain.pem - 编辑Nginx配置文件指定证书路径:
ssl_certificate /etc/nginx/cert/fullchain.pem; ssl_certificate_key /etc/nginx/cert/private.key;
- 把
- Apache配置:
- 直接分别指定三个文件路径即可:
SSLCertificateFile /path/to/Certificate.pem SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/CertificateChain.pem
- 直接分别指定三个文件路径即可:
场景2:导入内部客户端信任库
如果要让所有内部客户端信任该私有CA签发的全部证书,仅需导入CertificateChain.pem到系统信任根存储:
- Windows:双击pem文件,选择安装证书,存储位置选「本地计算机」,放入「受信任的根证书颁发机构」目录
- Linux:把pem文件复制到
/usr/local/share/ca-certificates/目录,执行sudo update-ca-certificates命令生效 - macOS:双击pem文件打开钥匙串访问,导入后右键证书选择「显示简介」,在信任选项下设置「使用此证书时」为「始终信任」
场景3:服务间mTLS双向认证配置
- 服务端侧:配置逻辑和Web服务器一致,用
Certificate.pem+私钥作为自身身份凭证,CertificateChain.pem作为客户端证书的信任锚,验证调用方证书合法性 - 客户端侧:发起请求时携带自身的证书和私钥,同时配置信任服务端的
CertificateChain.pem,避免出现证书不信任报错
注意事项
- 不要单独把
Certificate.pem导入客户端信任库,单独导入仅能信任这一张证书,无法覆盖同CA下的其他证书 - 如果你配置了多层中间CA,ACM导出的
CertificateChain.pem已经包含完整信任链,不需要额外拼接其他CA证书
内容的提问来源于stack exchange,提问作者Diego Peixoto
相关产品推荐
相关产品推荐

