1

我需要实现到我的应用程序的 https 连接。首先,我上课了,它信任所有证书,但读到它效率低下。然后我决定使用 kystore 来保存来自 serer 的密钥。我尝试在命令 promtp 中以这种方式创建它:

keytool -genkey -alias myproject -keystore C:/myproject.keystore 
-storepass myproject -storetype BKS -provider     
org.bouncycastle.jce.provider.BouncyCastleProvider

但是当我想这样使用时:

protected static org.apache.http.conn.ssl.SSLSocketFactory createAdditionalCertsSSLSocketFactory() {
        try {


            final KeyStore ks = KeyStore.getInstance("BKS");

            // the bks file we generated above
            final InputStream in = context.getResources().openRawResource( R.raw.myproject);  
            try {
                // don't forget to put the password used above in strings.xml/mystore_password
                ks.load(in, context.getString( R.string.mystore_password ).toCharArray());
            } finally {
                in.close();
            }

            return new AdditionalKeyStoreSSLSocketFactory(ks);

        } catch( Exception e ) {
            throw new RuntimeException(e);
        }
    }

,我无法从 res/raw 目录访问我的密钥库,但我将它放在 res/raw 目录中。而且我的 R 文件也被删除了......我尝试使用 Portecle 接口实现它,但我遇到了同样的问题 - 无法从 res/raw 错误中访问密钥库,并且当我尝试构建/清理项目 R 文件时被删除。当我删除密钥库文件时,R 文件已恢复。请告诉我,我怎样才能以正确的方式创建密钥库并将其用于我的连接。

4

0 回答 0