【问题标题】:How do you add a .p12 certificate to an Android device?如何将 .p12 证书添加到 Android 设备?
【发布时间】:2015-07-02 19:18:53
【问题描述】:

我在将 .p12 证书加载到我的 Android 项目时遇到问题。这是一段源代码:

char[] password = "<my pass>".toCharArray();
FileInputStream fIn = new FileInputStream("<name of cert>");
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(fIn, password);

在第 2 行打开证书文件时出错。

如何正确地将证书文件添加到我的 Android 程序中?

【问题讨论】:

    标签: android ssl


    【解决方案1】:

    试试这个

    File cert = new File("mnt/sdcard/" + filename + ".p12");
    InputStream inputStreamFromDownload = null;
    
    keyStore = KeyStore.getInstance("PKCS12");
    inputStreamFromDownload = new BufferedInputStream(new FileInputStream(cert));
    
    Log.i("Certificate", inputStreamFromDownload.available() + "");
    

    【讨论】:

    • 我必须将我的 .p12 证书放在哪里?主要问题是我不知道android从哪里读取证书。我只使用内部存储,我没有 SD 卡。我将 .p12 文件放入 Android 文件夹和数据文件夹。我没有在设备上找到我的可调试应用的文件夹。
    • @user3437564 您找到证书的放置位置了吗?
    【解决方案2】:

    ...

    在 Android 中,我看到人们以编程方式将密钥库安装在 以下方式(代码来自Android开发者博客):

    byte[] keystore = . . (read from a PKCS#12 keystore)
    
    Intent installIntent = KeyChain.createInstallIntent();
    installIntent.putExtra(KeyChain.EXTRA_PKCS12, keystore);
    startActivityForResult(installIntent, INSTALL_KEYSTORE_CODE);
    

    我还看到人们以编程方式仅安装证书 包裹在密钥库中:

    Intent intent = KeyChain.createInstallIntent();
    intent.putExtra(KeyChain.EXTRA_CERTIFICATE, cert);
    startActivity(intent);
    

    ...导致 --@Leem.fin question

    可能会发现以下链接是一个更好的起点:

    https://developer.android.com/studio/publish/app-signing.html#signing-manually

    【讨论】:

      猜你喜欢
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多