温馨提示×

centos上weblogic的SSL证书如何安装

小樊
35
2025-12-23 17:09:37
栏目: 云计算

CentOS 上 WebLogic SSL 证书安装步骤

一 准备与生成密钥库及 CSR

  • 登录到 CentOS,切换到 WebLogic 域目录(例如:/u01/app/oracle/domains/your_domain),在域下创建安全目录:security
  • 使用 JDK 的 keytool 创建 JKS 密钥库 并生成 CSR(请使用服务器的 FQDN 作为 CN,且密钥长度建议 2048 位及以上):
    • 创建密钥库与私钥
      keytool -genkeypair \
        -alias server \
        -keyalg RSA \
        -keysize 2048 \
        -storetype jks \
        -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
        -storepass <KeystorePass> \
        -keypass <KeyPass> \
        -dname "CN=web01.example.com, OU=IT, O=Org, L=City, ST=State, C=CN" \
        -validity 365
      
    • 生成 CSR
      keytool -certreq \
        -alias server \
        -file /u01/app/oracle/domains/your_domain/security/server.csr \
        -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
        -storepass <KeystorePass> \
        -keypass <KeyPass>
      
  • server.csr 提交给 CA 获取签名证书(常见为服务器证书与中间证书链)。

二 导入证书到密钥库

  • 导入 根 CA/中间 CA(若 CA 提供多个中间证书,请按链顺序导入,通常先根后中间):
    keytool -importcert -trustcacerts -noprompt \
      -alias rootca \
      -file /path/ca.crt \
      -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
      -storepass <KeystorePass>
    
    keytool -importcert -trustcacerts -noprompt \
      -alias intermediate \
      -file /path/intermediate.crt \
      -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
      -storepass <KeystorePass>
    
  • 导入 服务器证书(使用与生成 CSR 时一致的 alias=server):
    keytool -importcert \
      -alias server \
      -file /path/server.crt \
      -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
      -storepass <KeystorePass>
    
  • 验证导入结果(应能看到 PrivateKeyEntry 与证书链):
    keytool -list -v \
      -keystore /u01/app/oracle/domains/your_domain/security/identity.jks \
      -storepass <KeystorePass> | grep -A5 -i "Alias\|Entry type"
    
  • 注意:
    • 证书链的导入顺序与完整性直接影响 浏览器/客户端 对证书链的信任展示。
    • 若使用 自签名私有 CA,需确保 WebLogic 端信任该 CA(导入到密钥库或信任库)。

三 在 WebLogic 控制台配置 SSL

  • 登录 WebLogic 管理控制台,进入:Environment > Servers > <目标服务器> > Configuration > Keystores
  • Keystores 选择:Custom Identity and Java Standard Trust(标识密钥库使用刚创建的 identity.jks,信任库使用 JDK 的 cacerts),填写 Keystore 路径、类型 jks 与密码并保存。
  • 进入:Configuration > SSL,勾选 SSL Listen Port Enabled,设置 SSL Listen Port(常用 7002);在 Keystore 页签中填写 Private Key Alias=serverPrivate Key Password,保存。
  • 激活更改并重启服务器(使 SSL 监听端口 生效)。

四 防火墙与访问验证

  • 开放 SSL 端口(如 7002)
    firewall-cmd --zone=public --add-port=7002/tcp --permanent
    firewall-cmd --reload
    
  • 访问测试:在浏览器打开 https://:7002,确认证书链、颁发者与有效期正确;如需从 HTTP 自动跳转 HTTPS,可在应用的 web.xml 增加:
    <security-constraint>
      <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
    </security-constraint>
    
  • 若访问异常,优先检查:证书链是否完整、服务器 CN/FQDN 是否与访问域名一致、端口与防火墙策略是否正确。

五 常见问题与进阶

  • 证书链不完整导致浏览器告警:按 根 → 中间 → 服务器证书 的顺序导入;必要时在服务器上用 keytool -list -v 核对 Entry type=PrivateKeyEntry 与链信息。
  • 客户端证书校验(双向 SSL):将客户端证书导入 JDK cacerts(或指定信任库),并在 WebLogic 启用相应的 双向 SSL 配置;必要时在启动参数中添加 -DUseSunHttpHandler=true 以适配某些客户端握手行为。
  • 自签名或私有 CA 场景:确保 WebLogic 端已导入并信任该 CA,否则客户端会报 unable to find valid certification path 错误。

0