在WebLogic上使用您的应用程序之前,我始终建议在托管您的应用程序的Weblogic服务器上激活 SSL 。
使用HTTPS 协议访问您的应用程序将确保您的用户数据不被拦截。
为此,您应该首先获得一个有效的证书:
- 如果您在公司配置Weblogic,则应在内部要求获取有效证书。
- 如果您负责获取有效证书,我始终建议您从let's encrypt 组织获取一份。它是免费的,并且受到最重要的组织的信任。(Facebook、谷歌、思科、Github 等)
- 如果您只想测试配置,您可以按照下面 (1) 中的说明生成自签名证书。
1) (可选——不要用于生产)使用 java keytool 生成您的自签名证书
注意:使用自签名证书仅用于测试目的。使用时,浏览器会强烈警告用户您的证书不受信任。
先决条件:在您的计算机上安装了 Java
- 导航到java 安装的 bin 文件夹(通常是 C:\Program File(x86)\Java\jreXXXX\bin)
- 在此文件夹中打开命令提示符(将文件资源管理器顶部的路径替换为“cmd”并按 Enter)
- 运行以下命令以生成您的身份存储、自签名证书和信任存储
# Open a command terminal in the bin folded of your java installation (e.g: C:\Program File(x86)\Java\jreXXXX\bin) | |
# In the commands below : | |
# - selfsigned is the name of the certificate | |
# - storPass is the password of the keystore and truststore | |
# - keyPass is the password of the certificate | |
# You can change those values for yours | |
#Generate the keystore.jks | |
keytool -genkeypair -alias selfsigned -keyalg RSA -keysize 2048 -validity 365 -keypass keyPass -storepass storPass -keystore keystore.jks | |
#Enter your informations when prompt | |
#Be aware those information will be visible in your browser | |
#Export the selfsigned.cer from the keystore.jks | |
keytool -exportcert -alias selfsigned -file root.cer -keystore keystore.jks -storepass storPass | |
#Generate the truststore.jks | |
keytool -importcert -alias selfsigned -file root.cer -keystore truststore.jks -storepass storPass | |
#The jks files are available in the folder |
view rawGenerateSelfSignedSSLCertificateWithKeytool.bash hosted with by GitHub
2) 使用 FTP/SSH 将证书添加到域服务器
#Connect to the Weblogic Host through FTP and upload your keystore.jks and truststore.jks to your user home | |
#Connect to the Weblogic Host through SSH with your user | |
#Copy the trustStore and keyStore to a tmp folder available from your {YourWeblogicUser} | |
[{YourSSHUser}@{YourWeblogicHost} ~]$ cp truststore.jks /tmp/ | |
[{YourSSHUser}@{YourWeblogicHost} ~]$ cp keystore.jks /tmp/ | |
#Sudo to {YourWeblogicUser} | |
[{YourSSHUser}@{YourWeblogicHost} ~]$ sudo su - {YourWeblogicUser} | |
#Copy files to {YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates | |
[{YourWeblogicUser}@{YourWeblogicHost} ~]$ mkdir {YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates | |
[{YourWeblogicUser}@{YourWeblogicHost} ~]$ cp /tmp/truststore.jks {YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates | |
[{YourWeblogicUser}@{YourWeblogicHost} ~]$ cp /tmp/keystore.jks {YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates |
view rawAddCertificateToWeblogicDomainFolder.sh hosted with by GitHub
3)在Weblogic中配置SSL
注意:在选择 SSL 端口之前,请确保它没有在其他地方使用
- 以管理员角色连接到Weblogic控制台(http://{YourHostName}:{YourAdminPort}/console)
- 在左上角,进入锁定和编辑模式
- 环境 > 服务器 > {TheServerHostingTheAppNeedingSSL} > 常规
- 启用 SSL 侦听端口:
- SSL 监听端口:{YourAvailableSslPort 通常为 7002}
- 环境 > 服务器 > {TheServerHostingTheAppNeedingSSL} > 密钥库
- 密钥库:更改:自定义身份和自定义信任
- 自定义身份密钥库:{YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates/keystore.jks
- 自定义身份密钥库类型:JKS
- 自定义身份密钥库密码:{YourKeystorePassword in this example (1) example 'storPass'}
- 确认自定义身份密钥库密码:{YourKeystorePassword in this example (1) example 'storPass'}
- 自定义信任密钥库:{YourWeblogicDomainPath}/{YourWeblogicDomainName}/certificates/truststore.jks
- 自定义信任密钥库类型:JKS
- 自定义信任密钥库密码:{YourKeystorePassword in this example (1) example 'storPass'}
- 确认自定义信任密钥库密码:{YourKeystorePassword in this example (1) example 'storPass'}
- 环境 > 服务器 > {TheServerHostingTheAppNeedingSSL} > SSL
- 私钥别名:{YourCertificateName in this example 'selfsigned'}
- 私钥密码:{YourCertificatePassword in this example 'keyPass'}
- 确认私钥密码:{YourCertificatePassword in this example 'keyPass'}
- 高级 > 主机名验证:无
- 高级 > 使用 JSSE SSL:
- 在左上角,激活更改
- 重启 Weblogic域
就是这样,您可以连接到 SSL 中的托管应用程序 (https://{YourHostName}:{YourSSLPort}/{YourAppName})
注意:如果您遇到错误BEA-090716: Alert: Failed to retrieve identity key/certificate from keystore ksFile under alias alias on serverName确保 {YourCertificatePassword in this example 'keyPass'} 和 {YourKeystorePassword in this example (1)示例 'storPass'} 不同