WebDriverManager在AWS CodeBuild中遇SSL握手异常,求解决方案
问题解决步骤与团队建议
下一步操作
- 排查CodeBuild容器网络连通性:在BuildSpec中添加
curl -v https://chromedriver.storage.googleapis.com/命令,测试容器能否正常访问ChromeDriver默认下载源,获取SSL握手失败的具体细节。 - 核对容器与本地的JDK版本:执行
java -version查看容器内JDK版本,对比本地环境。若版本差异大,尝试升级容器JDK至与本地一致,或手动将下载源的根证书导入容器JDK的证书库。 - 切换WebDriverManager下载源:修改代码配置国内镜像源,绕开可能的网络限制,示例代码如下:
setDriver(WebDriverManager .chromedriver() .mirrorUrl("https://npm.taobao.org/mirrors/chromedriver/") .capabilities(options) .create());
- 检查CodeBuild网络权限:确认容器所在VPC的安全组、网络ACL是否放行443端口的出站HTTPS请求。
给团队的建议
- 标准化构建容器环境:将项目依赖的JDK版本、基础镜像版本固化为自定义镜像,预先配置好SSL证书与必要的网络代理,消除环境差异。
- 全局配置下载源:在项目配置文件(如
application.properties)中统一设置WebDriverManager的镜像地址,避免代码硬编码,便于后续切换维护。 - 添加构建前置检查:在BuildSpec的
install阶段加入下载源连通性测试,提前发现网络问题,减少构建失败概率。 - 整理环境排查文档:记录本地与CodeBuild环境的核心差异点(JDK版本、网络配置、证书情况等),形成排查流程文档,方便后续成员参考。
内容的提问来源于stack exchange,提问作者Kinghizzzzz
相关产品推荐
相关产品推荐

