web-dev-qa-db-ja.com

ユーザーがインストールした証明書の場所Android 4.0以降

次のように証明書(.crt)をインストールしました:デバイスをコンピューターに接続->証明書を内部ストレージにコピー->デバイスでsettings-> security-> install from storage-> and get " 「正常にインストールされました」または何か(デバイスのPINコードを入力するように求められました)。

次に、[設定]-> [セキュリティ]-> [信頼できる資格情報]で検索しようとしましたが、[システム]タブと[ユーザー]タブに見つかりませんでした([ユーザー]タブにあるはずですが、空です)。

PINコードの入力を求められたため、インストールプロセスに問題はないと思います(セキュリティメニューの[資格情報をクリア]をクリックしてすべての証明書を削除するまで、元に戻せません)

Some1を助けますか?

ありがとう!

23
krushi

これと同じ問題もありました。インストールする証明書が、単なるx509証明書ではなく、実際にはCA証明書であることを確認してください。残念ながら、ICSに付属している証明書インストーラーは、CA証明書ではない場合でも喜んでインストールします。証明書が正常にインストールされたと誤解を招きます。/misc/keystore。ただし、目的の目的でその証明書を実際に使用できないというフィードバックはユーザーに提供されません。

開発/テスト用に、この自己署名CA証明書の作成方法に関する便利なガイドを次に示します。 http://langui.sh/2009/01/18/openssl-self-signed-ca/

10
J. Carlos Navea

API 24(Android 7.0)からチェックインしました

設定->セキュリティ->ユーザー資格情報

すべてのユーザー証明書を一覧表示できます。 API 24より下では、設定にユーザー証明書を表示するオプションはありません(秘密鍵付きのPKCS12)。私がチェックした最も簡単なオプションAPI 19 21 22 23は証明書をインストールし、完了後に必要なサーバーに移動します双方向SSLGoogle Chromeアプリケーションを使用した認証。 Google Chromeには、インストールされている証明書のリストが表示されます。 Google Chromeなしで仮想デバイスを使用する場合は、このサイトからダウンロードできます。仮想デバイスの画面にドラッグアンドドロップアプリケーションをダウンロードした後。

1
macieg_b

すべての手順(ファイルを/ data/misc/keystoreに置き、証明書がCAであることを確認する)の後、デバイスを再起動すると、証明書が表示されます。

0
TimeWillTell

この回答 here は素晴らしいヒントでしたが、リンクされた投稿の一部は、Chromeが適切な証明書として受け入れる(subject alt name 、ダイジェストアルゴリズム)

ここに今日のすべてがあります:適切なCA証明書を持っている場合、「含む:... 1 CA」と表示され、1つの証明書だけを言う場合、インストールされますが、CAとして機能しません。

まず、myca.confを作成します

[ ca ]
default_ca = myca

[ crl_ext ]
# issuerAltName=issuer:copy  #this would copy the issuer name to altname
authorityKeyIdentifier=keyid:always

[ myca ]
new_certs_dir = /tmp
unique_subject = no
certificate = root.cer
database = certindex
private_key = privkey.pem
serial = serialfile
default_days = 365
default_md = sha1
policy = myca_policy
x509_extensions = myca_extensions

[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = optional
organizationName = supplied
organizationalUnitName = optional

[ myca_extensions ]
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
keyUsage = digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
crlDistributionPoints = URI:http://mp-test.com.au/myca.crl

subjectAltName = @alt_names

これらのコマンドは初めてのみ実行してください。

openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer
cp privkey.pem root.pem
touch certindex
echo 01 > serialfile

ドメインごとにこれらを実行します。

domain=www.example.org
openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl req -newkey rsa:2048 -nodes -out ${domain}.csr -keyout ${domain}.key
cat myca.conf > temp.conf
printf "[alt_names]\nDNS.1=${domain}\n" >> temp.conf
openssl ca -md sha512 -batch -config temp.conf -notext -in ${domain}.csr -out ${domain}.cer
openssl x509 -noout -text -in ${domain}.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer

root.pfxは、デバイスにインストールできるCA証明書です。 $ {domain.cer}は、root.pfxのインストール後に信頼される必要があるWebサイト証明書です。

0
Michael Ribbons