创建和使用密钥库https android

时间:2012-09-11 08:48:24

标签: android ssl https android-keystore

我需要实现与我的应用程序的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 derictory到达密钥库,当我尝试构建/清理项目时R文件已删除。当我删除密钥库文件时,R文件被恢复。 请告诉我,如何以正确的方式创建密钥库并将其用于我的连接。

0 个答案:

没有答案