在
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 raw
GenerateSelfSignedSSLCertificateWithKeytool.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 raw
AddCertificateToWeblogicDomainFolder.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’} 不同