温馨提示×

如何在Debian上配置WebLogic的SSL证书

小樊
41
2025-12-11 05:14:20
栏目: 云计算

在Debian上配置WebLogic的SSL证书

一 准备与规划

  • 准备文件与信息:服务器私钥与证书链(服务器证书在前、中间CA在后,必要时含根CA)、私钥口令、密钥库口令、私钥别名(如:server)、域名或IP(与证书的CN/SAN一致)。WebLogic以JKS为首选密钥库格式,证书与私钥通常保存在密钥库中;仅演示环境可用内置演示证书。生产环境请使用受信任CA签发的证书。
  • 放置证书文件:建议将JKS与证书链放在域目录(如:$DOMAIN_HOME/security),便于控制台配置与权限管理。
  • 端口规划:HTTP管理端口默认7001,HTTPS/SSL默认7002;确保端口未被占用并已在防火墙放行。

二 方式A 使用keytool快速生成自签名证书用于测试

  • 生成密钥库与自签名证书(别名与口令请自定义,示例为server/ChangeMe123):
    • keytool -genkeypair -alias server -keyalg RSA -keysize 2048 -validity 3650 -keystore $DOMAIN_HOME/security/identity.jks -storepass ChangeMe123 -keypass ChangeMe123 -dname “CN=hostname -f,OU=Dev,O=Org,L=City,ST=State,C=CN”
  • 可选:导出自签名证书用于分发或导入到信任库
    • keytool -exportcert -alias server -file $DOMAIN_HOME/security/server.cer -keystore $DOMAIN_HOME/security/identity.jks -storepass ChangeMe123
  • 说明:自签名证书仅用于测试,浏览器会提示不受信任;生产请用CA签发证书替换。

三 方式B 使用CA签发证书导入到WebLogic

  • 生成CSR(使用与上面相同的别名与口令):
    • keytool -certreq -alias server -keystore $DOMAIN_HOME/security/identity.jks -file server.csr -storepass ChangeMe123 -keypass ChangeMe123
  • 向CA提交CSR,获取证书链:通常包含服务器证书中间CA(必要时含根CA)。若收到**.p7b链文件,需转换为PEM**并在文本编辑器中确认以“-----BEGIN CERTIFICATE-----”开头与结尾。
  • 导入证书链到同一JKS(保持与生成CSR时相同的别名server):
    • 先导入中间CA(如有多个按签发顺序导入,别名可自定义):
      • keytool -importcert -alias intermediate1 -file intermediate1.cer -keystore $DOMAIN_HOME/security/identity.jks -storepass ChangeMe123
    • 再导入服务器证书(必须按申请时的别名导入,此处为server):
      • keytool -importcert -alias server -file server.cer -keystore $DOMAIN_HOME/security/identity.jks -storepass ChangeMe123
  • 可选:构建信任库(如使用自签名或内部CA)
    • 导入根/中间CA到信任库(示例为trust.jks):
      • keytool -importcert -alias rootca -file root.cer -keystore $DOMAIN_HOME/security/trust.jks -storepass ChangeMe123
  • 验证JKS内容(应能看到类型为PrivateKeyEntry的条目,且证书链完整):
    • keytool -list -v -keystore $DOMAIN_HOME/security/identity.jks -storepass ChangeMe123

四 在WebLogic控制台启用SSL

  • 登录控制台(http://主机:7001/console),在左侧锁定并编辑
  • 配置密钥库(Servers > 目标Server > Configuration > Keystores):
    • 选择Custom Identity and Custom Trust
    • Custom Identity Key Store:填写**$DOMAIN_HOME/security/identity.jks**;
    • Custom Trust Key Store:如使用自定义信任库填写**$DOMAIN_HOME/security/trust.jks**(也可沿用JDK cacerts);
    • 填写Keystore PasswordConfirm Password并保存。
  • 配置SSL(Servers > 目标Server > Configuration > SSL):
    • 勾选Enabled并设定SSL Listen Port(如:7002);
    • Identity and Trust Location:选择Keystores
    • Private Key Alias:填写server(与生成/导入时一致);
    • Private Key Password:填写私钥口令;保存。
  • 高级设置(可选但推荐):
    • 勾选Use JSSE SSL(更现代的JSSE实现,兼容性更好);
    • 双向认证按需设置(多数场景选不请求客户机证书)。
  • 激活更改并重启服务器(如域启动脚本位于**$DOMAIN_HOME/bin/startWebLogic.sh**)。

五 验证与常见问题

  • 访问测试:
    • HTTPS直连:https://主机:7002/console 或 https://主机:7002/应用;
    • 证书查看:浏览器地址栏锁形图标可查看颁发者有效期域名/SAN是否匹配。
  • HTTP自动跳转HTTPS(在应用的web.xml中添加):
    • SSL/* CONFIDENTIAL
  • 常见问题与排查要点:
    • 证书不受信任:确认已将中间CA按签发顺序导入到identity.jks;如使用自签或内部CA,确保trust.jks包含对应根/中间CA并已配置到服务器信任库。
    • 主机名不匹配:证书的CN/SAN必须与访问域名或IP一致,否则浏览器告警。
    • 端口与协议:确认7002已放行且应用监听在正确端口;必要时在控制台核对SSL Listen Port
    • 别名或口令错误:导入服务器证书时必须使用生成CSR时的相同别名;口令错误会导致启动失败或握手失败。
    • 链顺序错误:证书链文件需按“服务器证书 → 中间CA → 根CA”顺序;若链不完整,客户端可能不信任。

0