AWS部署Laravel应用遇NET::ERR_CERT_AUTHORITY_INVALID错误如何解决?
1. 先确认ACM证书本身没问题
- 登录AWS控制台打开Certificate Manager,找到
dashboard.mydomain.com对应的证书:- 查看状态是否为
Issued,如果是Pending validation或Expired直接处理——过期的话ACM一般会自动续期,但要确保域名验证状态正常;待验证的话重新走验证流程 - 核对证书覆盖的域名,必须精准包含
dashboard.mydomain.com,避免通配符使用错误或域名拼写失误 - 检查过期时间,若临近到期,手动触发续期(虽然ACM支持自动续期,但手动确认更稳妥)
- 查看状态是否为
2. 检查域名验证是否失效
如果当初用的是DNS验证:
- 打开Route53,确认对应子域名的CNAME记录(ACM生成的验证记录)未被删除或修改
- 在本地终端执行
nslookup <验证用域名>,确认解析结果与ACM提供的一致,不一致则调整DNS记录
如果是邮件验证: - 确认当初接收验证邮件的邮箱(如admin@mydomain.com、hostmaster@mydomain.com)已完成验证操作,若验证失效,重新发起验证即可
3. 核对SSL证书的部署配置
直接在EC2上部署Nginx/Apache的情况
- 登录EC2实例,打开Web服务器配置文件:
- Nginx需检查
server块中ssl_certificate和ssl_certificate_key是否指向ACM证书的正确路径;如果是手动下载的证书,确认文件未损坏 - Apache需检查
SSLCertificateFile和SSLCertificateKeyFile配置,同时必须配置ACM提供的完整证书链(包含中间证书和根证书)
- Nginx需检查
- 修改配置后重启服务:
sudo systemctl restart nginx或sudo systemctl restart httpd,确保配置生效
使用ALB/NLB负载均衡的情况
- 进入EC2控制台的负载均衡器页面,查看HTTPS监听器配置:
- 确认监听器绑定的是正确的ACM证书,而非未受信任的自定义证书
- SSL策略选择兼容主流设备的版本,比如
ELBSecurityPolicy-2016-08或更新版本,老旧加密套件会导致部分设备无法识别证书
4. 排查客户端侧的问题
- 让用户检查设备系统时间,时间偏差过大可能导致证书验证失败
- 建议用户切换网络环境(如从公司内网切换到手机流量),排查是否是内网防火墙或代理服务器拦截了证书链验证
- 提醒用户清除浏览器缓存和SSL证书缓存,部分浏览器会缓存旧证书信息,导致新证书无法生效
5. 验证证书链完整性
- 使用openssl命令在本地检查证书链:
查看输出中的证书链,确认包含ACM的中间证书和根证书,若存在缺失,需在Web服务器或负载均衡器中补充完整的证书链openssl s_client -connect dashboard.mydomain.com:443 -showcerts
内容的提问来源于stack exchange,提问作者Hugo González
相关产品推荐
相关产品推荐

