相关疑难解决方法(0)

关于javaagents的教程

我想学习一些关于javaagents的东西,但研究并不容易.大多数结果指的是JADE.我知道java代理可能意味着两件事:

  1. 用Java编程的代理是分布式系统的代理概念的化身.
  2. 用于增强JVM工作的低级软件组件,例如分析器,代码覆盖工具等

我在这里找到了类似的问题,但不幸的是它也提到了版本1.

你知道任何文章,初学者的教程,关于版本2中javaagent的示例项目吗?我在这里找到了一个,但我正在寻找更多.

java javaagents

52
推荐指数
2
解决办法
6万
查看次数

尽管将"disableCNCheck"设置为true,但https URL主机名与公共名称(CN)不匹配

我设法正确配置基于CXF的客户端,以便为运行Web服务的服务器找到正确的SSL证书:

  <http:conduit name="https://myserver/myws/register/soap?wsdl:{http://glob.reg.com/myws}.http-conduit">

    <http:tlsClientParameters>
      <sec:keyManagers keyPassword="changeit">
        <sec:keyStore type="JKS" password="changeit"
                  file="C:\Program Files (x86)\Java\jdk1.6.0_45\jre\lib\security\cacerts"/> 
       </sec:keyManagers>
      <sec:trustManagers>
        <sec:keyStore type="JKS" password="changeit"
                  file="C:\Program Files (x86)\Java\jdk1.6.0_45\jre\lib\security\cacerts"/> 
      </sec:trustManagers>
      <sec:cipherSuitesFilter>
        <!-- these filters ensure that a ciphersuite with
             export-suitable or null encryption is used,
             but exclude anonymous Diffie-Hellman key change as
             this is vulnerable to man-in-the-middle attacks -->
        <sec:include>.*_EXPORT_.*</sec:include>
        <sec:include>.*_EXPORT1024_.*</sec:include>
        <sec:include>.*_WITH_DES_.*</sec:include>
        <sec:include>.*_WITH_AES_.*</sec:include>
        <sec:include>.*_WITH_NULL_.*</sec:include>
        <sec:exclude>.*_DH_anon_.*</sec:exclude>
      </sec:cipherSuitesFilter>
    </http:tlsClientParameters>
    <http:authorization>
      <sec:UserName>Betty</sec:UserName>
      <sec:Password>password</sec:Password>
    </http:authorization>
    <http:client AutoRedirect="true" Connection="Keep-Alive"/>

  </http:conduit>
Run Code Online (Sandbox Code Playgroud)

但是......因为证书是针对与我服务器的机器不同的子域名(映射到相同的IP地址),我收到以下错误:

Caused by: java.io.IOException: The https URL hostname does not match the Common Name …
Run Code Online (Sandbox Code Playgroud)

java ssl https web-services cxf

9
推荐指数
1
解决办法
3万
查看次数

我如何停用SSL验证?

我正在尝试调用REST API,但是我得到以下异常(最后完成StackTrace):

"javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
Run Code Online (Sandbox Code Playgroud)

我向API提供商询问了这个问题,并说你正在使用的SSL库有问题.

你会如何解决这个问题?使用相同的代码(下面)我确实调用了NIMBLE API REST而没有任何问题,但在这种情况下它不起作用.然后,我没有任何文件证书(.cer).

我需要停用SSL验证,因为安全方法是我已经拥有的API KEY.

有什么建议?

非常感谢你!

====控制台:====

POST https://api.nexalogy.com/project/create?api_key=XXXXXXXXXXXXXXXXXXXX
HTTP Header:"Content-Type" "application/json"
HTTP Body:[{"name":"project1","lang":"en","type":"twitter"}]
api_key:XXXXXXXXXXXXXXXXXXXX
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

我也试过以下表格,例外是一样的:

POST https://api.nexalogy.com/project/create
HTTP Header:"Content-Type" "application/json"
HTTP Header:"api_key" "XXXXXXXXXXXXXXXXXXXX"
HTTP Body:[{"name":"project1","lang":"en","type":"twitter"}]
api_key:XXXXXXXXXXXXXXXXXXXX
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

====代码:==== …

java api rest ssl

8
推荐指数
2
解决办法
2万
查看次数

akka http SSLConfig与主机名验证和证书验证有关

我在客户端有一些Akka http配置问题.我正在尝试连接到不提供的服务器: - 公共签名证书 - 与主机名相对应的证书我没有关注此nginx,因此我无法更改服务器端配置.我只能改变客户端.

在对配置SSL进行了大量调查之后,我发现我需要在两个不同的级别在application.conf中配置SSL选项:

akka.ssl-config.ssl.loose.acceptAnyCertificate=true
akka.ssl-config.loose.disableHostnameVerification = true
Run Code Online (Sandbox Code Playgroud)

ssl-config.loose.acceptAnyCertificate=true
ssl-config.loose.disableHostnameVerification = true
Run Code Online (Sandbox Code Playgroud)

我检查过配置很好用

log-config-on-start = "on" 
Run Code Online (Sandbox Code Playgroud)

问题是我仍然在akka调试级别得到错误(不是很清楚)

[ingestionApiClient-akka.actor.default-dispatcher-13] [akka://ingestionApiClient/user/StreamSupervisor-0/flow-216-1-unknown-operation] closing output
Run Code Online (Sandbox Code Playgroud)

看看wireshark我发现这是证书验证的问题

TLSv1 Record Layer: Alert (Level: Fatal, Description: Certificate Unknown)
Run Code Online (Sandbox Code Playgroud)

我想JVM配置是我所做的全部,所以我也尝试按照这种方法修改JVM SSL配置: Java SSL:如何禁用主机名验证

配置SSLContext并将其传递给akka http没问题因为我可以设置默认的HttpsContext

val sc = SSLContext.getInstance("TLS")
*...configuration...*
val customContext =HttpsContext(sc, sslParameters = Some(params))
Http().setDefaultClientHttpsContext(customHttpsContext)
Run Code Online (Sandbox Code Playgroud)

但无论如何我都找不到配置默认主机名验证程序.Http类没有任何方法Http().setDefaultHostnameVerifier

这是我如何连接到服务器

val dataIngestFlow = Http().outgoingConnectionTls(config.httpEndpointHost,config.httpEndpointPort)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?非常感谢你的帮助

ssl http hostname ssl-certificate akka

7
推荐指数
1
解决办法
2880
查看次数

是否有可能说服Java应用程序忽略SSL问题而不修改其代码?

我有一些Java应用程序抱怨不同的SSL问题,如自签名证书或不受信任的证书.

由于我没有这些应用程序的代码并且获得良好的证书太难了,我正在寻找一种可以让我强制连接的解决方案.

到目前为止,我尝试过这些,但似乎还不够:

-Dcom.sun.net.ssl.checkRevocation=false 
-Djava.security.debug=certpath
Run Code Online (Sandbox Code Playgroud)

我仍然看到:

  • sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  • javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

java ssl

5
推荐指数
2
解决办法
2万
查看次数

SSLHandshakeException:证书中的主机名不匹配

我正在编写一个系统,必须将一个多部分发布到服务器(一个名为ARX的第三方程序,当前在开发期间在localhost上运行),该服务器具有自签名证书.

我试图找到它的证书,但只能找到三个不同的jks文件; server.jks,servertrust.jksserverca.jks.

我试图使用System.setProperty("javax.net.ssl.trustStore", "Program Files\\<path>\\jksfile")每个jks文件.然而; 当我这样做时,我收到以下错误: 证书中的主机名不匹配:<localhost>!= <9200416 arx sa cert>.

我在stackoverflow上浏览了大量类似的问题,试图了解如何解决这个问题,但我无法解决我的问题.

有什么建议?非常感谢所有帮助.

java security ssl apache-httpclient-4.x

3
推荐指数
1
解决办法
2万
查看次数