相关疑难解决方法(0)

使用HttpClient通过HTTPS信任所有证书

最近发布了一个关于HttpClient过度Https 的问题(在这里找到).我已经取得了一些进展,但我遇到了新的问题.和我的上一个问题一样,我似乎无法找到适合我的任何地方的例子.基本上,我希望我的客户端接受任何证书(因为我只指向一个服务器),但我一直在接受javax.net.ssl.SSLException: Not trusted server certificate exception.

所以这就是我所拥有的:


    public void connect() throws A_WHOLE_BUNCH_OF_EXCEPTIONS {

        HttpPost post = new HttpPost(new URI(PROD_URL));
        post.setEntity(new StringEntity(BODY));

        KeyStore trusted = KeyStore.getInstance("BKS");
        trusted.load(null, "".toCharArray());
        SSLSocketFactory sslf = new SSLSocketFactory(trusted);
        sslf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

        SchemeRegistry schemeRegistry = new SchemeRegistry();
        schemeRegistry.register(new Scheme ("https", sslf, 443));
        SingleClientConnManager cm = new SingleClientConnManager(post.getParams(),
                schemeRegistry);

        HttpClient client = new DefaultHttpClient(cm, post.getParams());
        HttpResponse result = client.execute(post);
    }
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

    W/System.err(  901): javax.net.ssl.SSLException: Not trusted server certificate 
    W/System.err(  901):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:360) 
    W/System.err(  901): …
Run Code Online (Sandbox Code Playgroud)

java ssl https certificate apache-httpclient-4.x

386
推荐指数
9
解决办法
57万
查看次数

证书受PC信任,但不受Android信任

从今天早上起,我的证书在Android上不再受信任,然后我的应用程序再也无法连接:

 Catch exception while startHandshake: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
 return an invalid session with invalid cipher suite of SSL_NULL_WITH_NULL_NULL
 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:591)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:807)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:781)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:770)
Run Code Online (Sandbox Code Playgroud)

如果我尝试在谷歌浏览器(在PC上)没有问题,证书是可信的,但如果我在Android上使用Chrome浏览器,它会告诉我证书不受信任.我能做什么?

android ssl-certificate

81
推荐指数
3
解决办法
11万
查看次数

“找不到认证路径的信任锚。” 在 .NET Maui 项目中尝试联系本地 .NET WebApi

我是移动开发新手,我正在尝试将我的 .NET Maui 应用程序连接到本地 ASP.NET Core 网站 (API)。

我目前被此异常阻止:

System.Net.WebException: 'java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.'

我已关注这篇文章https://learn.microsoft.com/en-us/xamarin/cross-platform/deploy-test/connect-to-local-web-services#bypass-the-certificate-security-check

运行dotnet dev-certs https --trust回报A valid HTTPS certificate is already present.

我当前的代码是:

HttpClientHandler handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) =>
  {
     if (cert.Issuer.Equals("CN=localhost"))
          return true;
     return errors == System.Net.Security.SslPolicyErrors.None;
  };

var httpclient = new HttpClient(handler);
var test = await httpclient.PostAsync($"https://10.0.2.2:44393/" + uri, new StringContent(serializedItem, Encoding.UTF8, "application/json"));
Run Code Online (Sandbox Code Playgroud)

但问题是我从未输入 ServerCertificateCustomValidationCallback。

我也尝试过

        ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, …
Run Code Online (Sandbox Code Playgroud)

c# ssl-certificate xamarin asp.net-core maui

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

如何以编程方式在Android中安装CA证书(用于EAP WiFi配置)?

我的目标:在Android programmitcally中创建一个EAP WiFi配置 - 包括CA证书.

问题:如何以编程方式安装CA证书(然后在EAP WiFi配置中引用该证书)?

我发现了一个非常有用的链接,允许我在这里创建和保存EAP WiFi配置: 如何在Android中以编程方式创建和读​​取WEP/EAP WiFi配置?

但是,假设您已在设备上安装了CA证书.我想在我的应用程序中安装证书 - 从应用程序中的资源,或从服务器发送.

这甚至可能吗?(在这种情况下,生根不是一种选择.)如果是这样,怎么样?

附加信息...

我还找到了一种向KeyStore添加证书的方法:https: //stackoverflow.com/a/4490543/1172101

但是,这专门用于创建安全套接字并通过HTTPS连接.我想使用WiFi证书.


不幸的是,我还没有找到一种以编程方式安装CA证书的方法 - 从应用程序中.

但是,可以通过Android中的Web浏览器安装证书.因此,解决方案(目前)是:启动一个意图,在Web浏览器中打开一个直接转到CA证书的URL.

这有效但有一些挑战:

  • 用户必须为证书命名.这是一个挑战,因为我们正在添加WiFi配置程序.因此,我们必须要求用户为证书提供相同的名称.
  • 用户必须输入密码.如果他们没有设置密码,用户将创建一个并输入两次.如果他们设置了安全密码,则用户必须记住相同的密码并输入密码.
  • 假设用户成功完成了这些步骤,他就会挂在浏览器中.

这导致了一些问题:

  • 从我的应用程序,有没有办法强制用户通过浏览器安装的证书的名称?
  • 从我的应用程序,有没有办法知道证书安装何时完成,然后重点回到我的应用程序?

如果您需要任何澄清,请告诉我.

android x509certificate android-wifi

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

将HTTPS Post Request发送到服务器

这是我的HTTP JSON

 {  
 "User": {    
    "Name": "Compulsary","Password": "Compulsary"  }
}
Run Code Online (Sandbox Code Playgroud)

我必须使用HTTPS POST请求发布到服务器.当我尝试发送请求时,我收到SSL服务器证书异常.我该如何解决这个问题?

我试过了什么?

我已经尝试使用HTTPPost带HTTPClient.SSL异常.我也试过使用URLConnection并忽略了SSL证书的检查.我得到401和405响应代码.

问题陈述:

将上述POST请求发送到服务器(请求是安全的,接受https).如何在android中实现这一点?

我试过这个,我的代码,我得到405错误?

// always verify the host - dont check for certificate
final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
};

/**
 * Trust every server - dont check for any certificate
 */
private static void trustAllHosts() {
    // Create a trust manager that does not validate certificate chains …
Run Code Online (Sandbox Code Playgroud)

android

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

与https://api.parse.com的连接被拒绝

我有一个具有登录屏幕的应用程序,有两个选项,1个用twitter登录,2个用户名和密码.

这个应用程序在商店现场直播,但是,我目前正在收到一些拒绝api.parse.com连接的报告.我已经在多个设备上进行了测试,并且连接正常.

除了服务器出现问题之外,是否还有任何原因可能会拒绝解析连接?设备imei等可以发挥作用吗?我发现这种情况很不寻常,一些人而不是其他人正在发生这种情况.另外,我最终会以这种方式失去很多用户.

任何指导表示赞赏.

如果有人对此有任何了解,我真的很感激任何帮助,parse.com状态说它完全可以操作,不再有解析论坛了,如果有人能给我一些见解它会很棒

android parse-platform

5
推荐指数
1
解决办法
2157
查看次数

Android 应用程序不信任 SSL 证书,但 Chrome 信任

我们有一个内部 CA 服务器。

我们有一个 Android 应用程序,应该通过 https 与我们的网络服务器进行通信,并已生成所需的证书。当我们通过应用程序连接到服务器时,它会失败并显示当前的堆栈跟踪:

 Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Run Code Online (Sandbox Code Playgroud)

但是当我们通过 Android Chrome 浏览服务器时,它可以工作,并且我们会得到一个绿色的钥匙锁。我们已在 Android 设备的设置下上传了证书。因此它列在用户证书下。

我的问题是:我需要按代码做任何事情吗?我认为该应用程序会查看手机上的证书并使用它。Chrome 似乎就是这么做的。但一些指南告诉我,我手动创建了一个密钥库并将其提供给 SSLFactory(链接到指南)。但在其他页面上,这似乎应该是开箱即用的......

有人能指出我正确的方向吗?

ssl android google-chrome ca

5
推荐指数
0
解决办法
2627
查看次数