Weblogic 报错Hostname verification failed

weblogic报错:

Hostname verification failed: HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier, hostname=**.**.**.**.**

weblogic发送https请求报:org.springframework.web.client.ResourceAccessException:

I/O error on POST request for "https:xxxxxxxxxxxxxxxxxxxxxxx":

Hostname verification failed: HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier,

hostname=agent.yrmpay.com.;

nested exception is javax.net.ssl.SSLKeyException: Hostname verification failed: HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier, hostname=agent.yrmpay.com.

原因

默认情况下,当 WebLogic Server 实例充当 SSL 客户端角色(它会尝试通过 SSL 连接到其他服务器或应用程序)时,它会验证 SSL 服务器在数字证书中返回的主机名是否与用于连接 SSL 服务器的 URL 主机名相匹配。如果主机名不匹配,则删除此连接。

解决办法:

方法1:找到weblogic的启动脚本:我的是startWebLogic.sh 然后在脚本文件里加入一条命令:

windows环境

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.security.SSL.ignoreHostnameVerification=true

linux环境

#SSLWLSHostnameVerifier
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.security.SSL.ignoreHostnameVerification=true"
export JAVA_OPTIONS

重启解决。

方法2:

-Dweblogic.security.SSL.hostnameVerifier=examples.security.sslclient.NulledHostnameVerifier

用此设置更改主机名验证,类examples.security.sslclient.NulledHostnameVerifier是weblogic的一个实现,用于取消主机名验证;另可以指定自定义主机名验证器类名,该类必须实现weblogic.security.SSL.HostnameVerifier 接口。

方法3.

设置布署主机的SSL选项主机认证为无。(这可能会导致安全问题)

WebLogic 报错 `failed not restartable` 通常出现在尝试重新启动某个服务实例或组件时,而该实例处于不可重启状态。这种情况可能与服务实例的生命周期管理、资源锁定、依赖项未满足或配置错误有关。以下是可能的原因及解决方案: ### 原因分析 1. **服务实例处于非活动或终止状态** 如果服务实例被显式停止或因异常终止,再次启动时可能不会进入可重启状态,导致系统返回 `failed not restartable` 错误。 2. **资源锁定或未释放** 某些资源(如文件句柄、端口、JDBC连接)未正确释放,导致服务无法重新启动。 3. **配置错误或依赖项缺失** 服务依赖的其他组件(如数据源、JMS队列、应用程序)未正确配置或未启动,导致服务无法进入运行状态。 4. **持久化状态冲突** 在集群环境中,如果启用了会话持久化或高可用性设置,持久化状态未正确清理可能导致服务无法重启。 5. **日志或临时文件残留** 服务运行过程中生成的日志、缓存或临时文件未清理,可能导致状态冲突。 ### 解决方案 1. **检查服务状态并手动清理状态文件** 登录 WebLogic 管理控制台或通过 `WLST` 命令行工具查看服务实例的当前状态。若服务处于“failed”状态但无法重启,可尝试手动删除状态文件或使用 `delete` 命令清除服务实例。 示例 WLST 命令: ```python connect('weblogic','password','t3://localhost:7001') delete('MyService','AppRuntimeStateRuntime') ``` 2. **重启 WebLogic Server 实例** 如果服务实例无法单独重启,可尝试重启整个 WebLogic Server 实例以释放资源并重置状态。 ```bash ./stopWebLogic.sh ./startWebLogic.sh ``` 3. **检查并修复依赖项** 确保服务依赖的数据源、JMS 服务、部署的应用程序等均已正确配置并处于运行状态。可在控制台中查看服务的依赖关系图。 4. **清理临时文件和日志** 删除 WebLogic 的临时目录(如 `servers/<server-name>/tmp`)和日志目录(如 `servers/<server-name>/logs`)中的内容,确保没有残留状态信息。 5. **调整服务生命周期配置** 在 `config.xml` 或通过控制台调整服务的生命周期配置,确保服务在失败后允许重启。例如,设置 `restartAllowed` 属性为 `true`。 6. **查看诊断日志进行深入排查** 检查 WebLogic 日志文件(如 `domain.log` 和服务器日志)以获取详细的错误信息。日志路径通常为 `servers/<server-name>/logs/<server-name>.log`。 ### 示例:WLST 清理服务状态 ```python connect('weblogic','password','t3://localhost:7001') cd('AppRuntimeStateRuntime') delete('MyService', 'AppRuntimeStateRuntime') ``` ### 示例:重启 WebLogic 服务 ```bash # 停止服务 ./stopWebLogic.sh # 启动服务 ./startWebLogic.sh ``` 通过上述方法可以有效解决 WebLogic 报错 `failed not restartable` 的问题。在执行任何操作前,请确保已备份关键配置文件和日志,以便在需要时进行恢复。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值