温馨提示×

Linux WebLogic如何配置SSL证书

小樊
37
2026-01-01 03:15:56
栏目: 云计算

Linux WebLogic 配置 SSL 证书实操指南

一 准备与规划

  • 准备文件与信息:使用 JDK 的 keytool 生成 JKS 密钥库CSR,向 CA 申请证书;证书通常包含:服务器证书 server.crt/chain.crt中间证书 intermediate.crt根证书 root.crt。WebLogic 启用 SSL 需要三要素:私钥CA 签名的服务器证书根证书
  • 端口与访问:管理端口默认 7001,HTTPS 默认 7002;若对外使用标准 HTTPS 端口,可改为 443(需 root 或 CAP_NET_BIND_SERVICE 能力,并注意防火墙/安全组放行)。
  • 域名与证书匹配:证书的 CN/SAN 必须与访问域名一致,否则浏览器会提示不安全。
  • 信任库选择:单向认证可用 Java Standard Trust(JRE cacerts);双向认证需 Custom Trust 并导入客户端 CA。
  • 版本提示:WebLogic 10.3.1 及以上支持主流品牌证书。

二 方案一 使用 JKS 自建证书并导入 CA 证书(通用)

    1. 生成密钥库与私钥别名(示例:alias=server_cert,storepass=Passw0rd,keysize=2048)
    keytool -genkeypair \
      -alias server_cert \
      -keyalg RSA -keysize 2048 -sigalg SHA256withRSA \
      -dname "CN=`hostname -f`,OU=IT,O=Org,L=City,ST=State,C=CN" \
      -keystore identity.jks \
      -storepass Passw0rd \
      -validity 365
    
    1. 生成 CSR(提交给 CA)
    keytool -certreq \
      -alias server_cert \
      -file server.csr \
      -keystore identity.jks \
      -storepass Passw0rd
    
    1. 导入 CA 证书链(顺序:根 → 中间,最后导入服务器证书;服务器证书别名必须与私钥别名一致)
    # 导入根证书(示例 root.cer)
    keytool -importcert -alias root \
      -file root.cer \
      -keystore identity.jks \
      -storepass Passw0rd
    
    # 导入中间证书(示例 intermediate.cer,可按需多次导入)
    keytool -importcert -alias intermediate \
      -file intermediate.cer \
      -keystore identity.jks \
      -storepass Passw0rd
    
    # 导入服务器证书(必须与生成 CSR 时的 alias 一致)
    keytool -importcert -alias server_cert \
      -file server.crt \
      -keystore identity.jks \
      -storepass Passw0rd
    
    1. 在 WebLogic 控制台配置
    • 登录控制台:Environment → Servers → 目标服务器 → Keystores,选择 Custom Identity and Custom Trust(或单向用 Custom Identity and Java Standard Trust)。
    • 填写:
      • Custom Identity Keystore:identity.jks 的 绝对路径
      • Type:JKS;Custom Identity Keystore Passphrase:Passw0rd
      • 单向:Java Standard Trust Keystore 使用 JRE/lib/security/cacerts,默认密码 changeit
    • 切到 SSL 页签:
      • Identity and Trust Locations:Keystores
      • Private Key Alias:server_cert;Private Key Passphrase:Passw0rd
    • 切到 General 页签:勾选 Listen SSL Port Enabled,端口用 7002(或改为 443)。
    • 保存并激活更改,必要时重启。

三 方案二 使用云厂商提供的 Tomcat 格式证书(server.jks)

    1. 获取文件:下载并解压证书包,得到 server.jkskeystorePass.txt(内含密钥库密码)。
    1. 控制台配置(与上节类似):
    • Keystores:选择 Custom Identity and Java Standard Trust;Identity Keystore 指向 server.jks,密码填 keystorePass.txt 中的值。
    • SSL:Identity and Trust Locations 选 Keystores;Private Key Alias 可用命令查看:
      keytool -list -keystore server.jks -storepass $(cat keystorePass.txt) | grep -A1 PrivateKeyEntry
      
    • General:启用 Listen SSL Port Enabled,端口 443/7002
    1. 保存激活并重启(如需)。

四 验证与常见问题

  • 验证访问:
    • 浏览器访问 https://域名:7002(或 https://域名 若用 443),应显示锁标识;证书详情需能看到正确的 颁发者链域名匹配
  • 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>
    
  • 常见问题排查:
    • 端口未放行:确保 7002/443 已在防火墙/云安全组开放。
    • 证书链不完整:确认已按 根 → 中间 → 服务器证书 顺序导入,且服务器证书 alias 与私钥一致
    • 域名不匹配:证书 CN/SAN 必须与访问域名一致。
    • 权限问题:使用 443 端口需相应系统权限或以 root 启动(不建议生产以 root 运行,建议使用 7002 或具备 CAP_NET_BIND_SERVICE 能力)。

0