--------------------------忘记控制台管理员密码--------------------------
参考:
pazhanikanthan的回答 @
说明:偶使用的WebLogic版本是 10.3.5.0
步骤:
# 1. 进入Weblogic的domain目录
CMD:\> cd
# 2. 设置PATH和CLASSPATH
CMD:\YourDomainPath> bin\setDomainEnv.cmd
CMD:\YourDomainPath> echo %CLASSPATH%
# 3. 生成临时管理员的账户和密码(备份并重新生成\security\DefaultAuthenticatorInit.ldift)
CMD:\YourDomainPath> rename .\security\DefaultAuthenticatorInit.ldift DefaultAuthenticatorInit.ldift.bak
CMD:\YourDomainPath> java weblogic.security.utils.AdminAccount .\sercurity
# 4. 删除boot.properties中的内容
CMD:\YourDomainPath> echo username= > .\servers\\security\boot.properties
CMD:\YourDomainPath> echo password= >> .\servers\\security\boot.properties
# 5. 备份并删除目录 \servers\\data\ldap
# 6. 重启 Weblogic
--------------------------------WebLogic SSL------------------
1 WebLogic 服务器的设置
1.1 先使用JDK自带的keytool.exe 生成一个自签名的证书及密钥库:
(注意:以下是一行命令,这里是为了显示而修改成多行了)
CMD:\> keytool -genkeypair -alias mykey -keyalg RSA -keysize 1024 -sigalg SHA1withRSA
-dname "CN=HelloWLSSL, OU=No.1 Department, O=ABCSystems.Inc, L=Weihai, S=Shandong, C=CN"
-validity 3650 -keypass 123456 -keystore C:/weblogic.jks -storepass 123456 -storetype JKS
该命令 生成一对自签名的私钥和证书(公钥),并将其保存在指定的密钥库中。
如果密钥库不存在,则创建一个。
密钥库简单介绍:它相当于各种对称加密,非对称加密的密钥的保存库,
类似于日常中使用的各种USB密钥,只不过前者是软件虚拟设备,后者是物理真实设备。密钥库通过 -storepass 进行密码保护。
该密钥库中可以存放多套证书及其对应的私钥,但是私钥通过 -keypass 进行密码保护。
1.2 通过浏览器登陆在WebLoigc控制台并进行相应的配置
左侧 base_domain -> 环境 -> 服务器 -> AdminServer (管理) -> 配置
-> 一般信息 :
-> 选中 “启用SSL监听端口”,并修改 SSL监听端口为标准的 443 端口。-> 保存
-> 密钥库 :
-> 点击 “更改”,选择为 “定制标识和定制信任”-> 保存
-> 定制标识密钥库:输入步骤2.1 中 -keystore 指定的文件全路径,这里是 "C:/weblogic.jks"
-> 定制标识密钥库类型: 输入步骤2.1中 -storetype 指定的值,这里是 "JKS"
-> 定制标识密钥库密码短语 和 确认定制标识密钥库密码短语:
输入步骤2.1中 -storepass 指定的密码,这里是"123456"
-> “信任”下的配置不需要配置,因为我们使用的是自签名的证书,仅仅用来保证数据通道安全。
-> 保存
-> SSL
-> "标识和信任位置" 保持默认的 “密钥库”即可
-> 私有密钥别名: 输入步骤2.1中 -alias 指定的 别名,这里是 “mykey”
-> 私有密钥密码短语 和 确认私有密钥密码短语 :
输入步骤2.1中 -keypass 指定的密码即可,这里是 "123456"
-> 保存
2 web应用中的配置
2.1 修改 WEB-INF/web.xml
- <security-constraint>
-
<display-name>整站SSL</display-name>
-
<web-resource-collection>
-
<web-resource-name>Protected Area</web-resource-name>
-
<url-pattern>/*</url-pattern>
-
<http-method>DELETE</http-method>
-
<http-method>GET</http-method>
-
<http-method>POST</http-method>
-
<http-method>PUT</http-method>
-
</web-resource-collection>
-
<user-data-constraint>
-
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
-
</user-data-constraint>
-
</security-constraint>
-
-
<security-role>
-
<role-name>XXX_ROLE_NAME</role-name>
-
</security-role>
-
-
<login-config>
-
<auth-method>BASIC</auth-method>
-
<realm-name>XXX System</realm-name>
-
</login-config>
2.2 修改 WEB-INF/weblogic.xml
- <?xml version='1.0' encoding='UTF-8'?>
-
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
-
xmlns:xsi="">
-
<security-role-assignment>
-
<role-name>XXX_ROLE_USER</role-name> <!-- web.xml中的role名称 -->
-
<principal-name>XXX_USER_GROUP</principal-name> <!-- weblogic控制台中配置的用户组的名称 -->
-
</security-role-assignment>
-
</weblogic-web-app>
------------------------Webloigc的Class加载顺序与Tomcat的不一致----------------------
对应方法:修改 WEB-INF/weblogic.xml
- <?xml version='1.0' encoding='UTF-8'?>
-
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
-
xmlns:xsi="">
-
...
-
<container-descriptor>
-
<prefer-web-inf-classes>true</prefer-web-inf-classes>
-
</container-descriptor>
-
...
-
</weblogic-web-app>
但因此会出现另外一个问题:
ClassNotFoundException:org.apache.xerces.jaxp.datatype.DataTypeFactoryImpl
1. 将 WEB-INF/lib/ 下的低版本的 xercesImpl_<版本号>.jar删除,更新至 2.9.1 +即可。
------------------------通过IP根目录直接访问Web应用-------------------------
修改 WEB-INF/weblogic.xml
- <?xml version='1.0' encoding='UTF-8'?>
-
<weblogic-web-app
-
xmlns="http://www.bea.com/ns/weblogic/90"
-
xmlns:xsi="">
-
...
-
<context-root>/</context-root>
-
...
-
</weblogic-web-app>
阅读(1353) | 评论(0) | 转发(0) |