私はエンタープライズ android アプリケーションを開発しているため、正当な証明書が購入されている間にサーバーの証明書が自己署名されている場合でも、テスト段階でクライアント (android エミュレーター/テスト電話) とサーバーの間に安全な接続を作成する必要があります。会社によって(今のところ私の管理外のもの)。
もちろん、Android OSによってネイティブに信頼されていないサーバーの自己署名証明書とその認証局を信頼する必要があります。私は、このシナリオで HTTPS 環境を作成するための Google の提案に従っています。
私が現在直面している問題は.crt
、Google の例の次の行のように自分のファイルにアクセスできないことです。
InputStream caInput = new BufferedInputStream(
new FileInputStream("load-der.crt"));
上記の代わりに、私は以下を使用しています:
InputStream caInput = new BufferedInputStream(
getResources().openRawResource(R.raw.mycrtfile));
ファイルが存在するInputStream
から派生した を開きます。しかし、私はその行に出ます。 mycrtfile.crt
.crt
/res/raw/mycrtfile.crt
NullPointerException
ディレクトリ内に保存されている未加工のリソースとしてロードする必要がある証明書ファイルを保存してアクセスするより良い方法はありますInputStream
か?FileInputStream
res