Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式从Url获取证书信息_Android_Ios_Ssl Certificate_X509certificate - Fatal编程技术网

Android 以编程方式从Url获取证书信息

Android 以编程方式从Url获取证书信息,android,ios,ssl-certificate,x509certificate,Android,Ios,Ssl Certificate,X509certificate,是否可以从Url获取证书信息?在iOS中,它有nsurauthenticationchallenge,如果url包含https,它会给出信息 同样,我们是否可以通过代码获取特定url的证书信息?是的,可能: 步骤1:在broswer中输入url,点击2选项卡,如下所示: 步骤2:打开详细信息选项卡 步骤3:从那里导出公钥 步骤4:获取.cert文件 步骤5:从.cert文件生成密钥库,并将其放在android中{ X509TrustManager trustManager = new X50

是否可以从
Url
获取证书信息?在iOS中,它有
nsurauthenticationchallenge
,如果
url
包含
https
,它会给出信息

同样,我们是否可以通过代码获取特定
url
的证书信息?

是的,可能:

步骤1:在broswer中输入url,点击2选项卡,如下所示:

步骤2:打开详细信息选项卡

步骤3:从那里导出公钥

步骤4:获取.cert文件

步骤5:从.cert文件生成密钥库,并将其放在android中{
X509TrustManager trustManager = new X509TrustManager() {
                @Override
                public void checkClientTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                    for (TrustManager tm : managers) {
                        if (tm instanceof X509TrustManager) {
                            ((X509TrustManager) tm).checkClientTrusted(
                                    chain, authType);
                        }
                    }
                }

                @Override
                public void checkServerTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                    for (X509Certificate cert : chain) {
                        // cert gives the server Certificate Information.
                        if (cert.getIssuerX500Principal().equals(
                                trustedRoot.getIssuerX500Principal())) {
                            return;
                        }
                    }
                    for (TrustManager tm : managers) {
                        if (tm instanceof X509TrustManager) {
                            ((X509TrustManager) tm).checkServerTrusted(
                                    chain, authType);
                        }
                    }
                }

                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    ArrayList<X509Certificate> issuers = new ArrayList<>();
                    for (TrustManager tm : managers) {
                        if (tm instanceof X509TrustManager) {
                            issuers.addAll(Arrays
                                    .asList(((X509TrustManager) tm)
                                            .getAcceptedIssuers()));
                        }
                    }
                    return issuers.toArray(new X509Certificate[issuers
                            .size()]);
                }

            };
@凌驾 public void checkClientTrusted(X509Certificate[]链, 字符串authType)引发CertificateException{ 适用于(TrustManager tm:管理者){ if(X509TrustManager的tm实例){ ((X509TrustManager)tm).checkClientTrusted( 链,authType); } } } @凌驾 公共无效checkServerTrusted(X509Certificate[]链, 字符串authType)引发CertificateException{ 对于(X509证书证书:链){ //cert提供服务器证书信息。 如果(证书getIssuerX500Principal()等于( trustedRoot.getIssuerX500Principal()){ 返回; } } 适用于(TrustManager tm:管理者){ if(X509TrustManager的tm实例){ ((X509TrustManager)tm).checkServerTrusted( 链,authType); } } } @凌驾 公共X509证书[]getAcceptedIssuers(){ ArrayList发行人=新ArrayList(); 适用于(TrustManager tm:管理者){ if(X509TrustManager的tm实例){ issuers.addAll(数组) .asList(((X509TrustManager)tm) .getAcceptedIssuers()); } } 返回发卡机构。toArray(新X509证书[发卡机构 .size()); } };
检查此
//证书提供服务器证书信息。
在上述代码中。

谢谢您的回答。但是,我需要它通过代码。我们能通过密码得到这个吗@N5.Atlates您需要手动获取密钥库文件,然后您可以在android中使用该文件进行ssl连接,是的,您可以连接到https,但需要密钥库出现在手动生成的代码中Url,我需要检查它也是动态的。它不是静止的。。我怎么知道用户将只使用此url。我可以动态获取密钥库文件吗@不确定,这是我可以实际执行的方法。