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

如何在Elastic Beanstalk部署后自动执行脚本安装Keycloak证书?

自动在Elastic Beanstalk实例上安装Keycloak证书的方案

完全可以通过.ebextensions实现证书的自动安装,这是Elastic Beanstalk官方推荐的自定义实例初始化流程的方式,能确保每次新实例启动或应用部署时自动执行证书安装操作。以下是具体步骤:

1. 准备Keycloak证书

先从你的Keycloak服务器导出PEM格式的证书:

openssl s_client -connect your-keycloak-domain:443 </dev/null | openssl x509 -outform PEM > keycloak.crt

将生成的keycloak.crt文件放到Spring Boot项目的根目录下。

2. 创建.ebextensions配置目录

在项目根目录新建.ebextensions文件夹(若还未创建),这是EB识别自定义初始化脚本的标准目录。

3. 编写配置脚本

在.ebextensions目录下创建一个配置文件,比如01_keycloak_cert.config,内容如下(严格遵循YAML缩进规则):

# 1. 将本地证书复制到EC2实例临时目录
files:
  "/tmp/keycloak.crt":
    mode: "000644"
    owner: root
    group: root
    source: file://./keycloak.crt

# 2. 将证书导入Java系统信任库
commands:
  01_import_cert:
    # 先检查证书是否已存在,避免重复导入
    test: |
      keytool -list -alias keycloak -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit >/dev/null 2>&1 || exit 0
    command: |
      keytool -importcert -noprompt -alias keycloak -file /tmp/keycloak.crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

# 3. 重启应用服务,确保证书生效
container_commands:
  01_restart_app:
    command: "sudo systemctl restart elasticbeanstalk-webapp"

关键细节说明

  • Java信任库路径:$JAVA_HOME会自动指向EB实例上的Java环境,不同版本的Corretto/OpenJDK路径略有差异,但用环境变量更通用。若不确定,可登录EC2实例执行echo $JAVA_HOME确认具体路径。
  • 避免重复操作:配置中的test命令会先检查证书是否已存在于信任库,仅当不存在时才执行导入,减少不必要的重复操作。
  • 服务重启:导入证书后必须重启EB应用服务,确保Spring Boot加载更新后的信任库。elasticbeanstalk-webapp是EB默认的应用服务名,若你的环境使用特殊容器(如自定义Tomcat),需替换为对应服务名。
  • 权限问题:所有命令默认以root权限执行,确保能修改系统级的信任库文件。

备选方案(无需修改系统信任库)

若不想修改系统级信任库,可在Spring Boot应用内配置自定义信任库:

  1. 将keycloak.crt转换为JKS格式:
keytool -importcert -alias keycloak -file keycloak.crt -keystore keycloak.jks -storepass your-custom-password
  1. 将keycloak.jks放入项目src/main/resources目录
  2. 在application.properties中添加配置:
server.ssl.trust-store=classpath:keycloak.jks
server.ssl.trust-store-password=your-custom-password

这种方式更轻量化,不依赖EB实例配置,但需维护应用内的信任库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:47:43