java.security.cert.CertificateException: No subject alternative names matching IP address **** found

文章讲述了在修改域控用户密码时遇到的CertificateException,由于使用特定版本OracleJDK与IP地址连接的问题。提供了解决方案,包括设置JVM参数`jdk.tls.trustNameService`为true,以及针对未安装服务的情况修改Tomcat的Service.bat文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改域控用户密码,报错java.security.cert.CertificateException: No subject alternative names matching IP address **** found

前提CA证书已经导入到jdk证书管理器!!!

解决方法

如果您使用 1.8.0_51 和 1.8.0_60 之间的 Oracle JDK,则通过 IP 地址而不是主机名进行连接时会出现问题。如果使用 IP 地址,则还必须在证书的主题备用名称中提及该地址。根据Mulesoft 支持的说法,解决方法是将 JVM 参数“jdk.tls.trustNameService”设置为 true - 从而对 IP 地址进行反向名称查找。

经测试可用的修改方式

两种修改方式

1. 服务已安装

  • 打开Tomcat文件目录中的bin目录,双击打开tomcat*.exe,如下图
    在这里插入图片描述

  • 选中上面Java选项
    在这里插入图片描述

  • 直接修改输入框前面追加-Djdk.tls.trustNameService=true,然后点击‘应用’按钮,即可完成修改

  • 启动Tomcat服务后,在日志中会打印出,修改后的jvm options,如下图
    在这里插入图片描述

  • 出现上面日志输出,则表示修改成功!

2. 服务未安装

得到一个安装即是修改后的内存值,适用于需要经常安装部署的人员。
适用前提:未安装Tomcat服务!!!!!
  1. 修改Service.bat文件
    找到下面语句:

    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%" ^
    
  2. 直接修改JvmOptions值

    --JvmOptions "-Djdk.tls.trustNameService=true;-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%" ^
    
  3. 安装Tomcat服务,bin目录下执行以下命令行

    service install
    
  4. 安装完成打开tomcat*.exe,查看Java选项,如下图,则表示修改成功
    在这里插入图片描述

结束!!!!!

-----------我是分割线---------------------------------------------------------------------------------------------

补充说明:如果添加-Djdk.tls.trustNameService=true;无效,改用-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true;

elasticsearch@elasticsearch-master-2:~$ elasticsearch-reset-password -u elastic -i 123qqWARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch] WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch] q05:59:51.395 [main] WARN org.elasticsearch.common.ssl.DiagnosticTrustManager - failed to establish trust with server at [172.16.58.200]; the server provided a certificate with subject name [CN=elasticsearch-master], fingerprint [663f0e2ea99d6c658d7418a5119e1d756abc2ef3], keyUsage [digitalSignature, keyEncipherment] and extendedKeyUsage [serverAuth, clientAuth]; the session uses cipher suite [TLS_AES_256_GCM_SHA384] and protocol [TLSv1.3]; the certificate has subject alternative names [DNS:elasticsearch-master,DNS:elasticsearch-master.logging,DNS:elasticsearch-master.logging.svc]; the certificate is issued by [CN=elasticsearch-ca] but the server did not provide a copy of the issuing certificate in the certificate chain; the issuing certificate with fingerprint [6aacfbb37169100f515734e0862890ea18cd03f1] is trusted in this ssl context ([xpack.security.http.ssl (with trust configuration: PEM-trust{/usr/share/elasticsearch/config/certs/ca.crt})]) java.security.cert.CertificateException: No subject alternative names matching IP address 172.16.58.200 found at sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:164) ~[?:?] at sun.security.util.HostnameChecker.match(HostnameChecker.java:101) ~[?:?]
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值