J'ai généré un certificat auto-signé que j'ai essayé d'installer sur mon téléphone exécutant Android 10, mais une collation semble me dire que Private key required to install certificate
.
J'ai essayé sur un téléphone exécutant Android 9 avec le même certificat et cela fonctionne comme prévu.
Avez-vous une idée s'il y a une solution de contournement pour obtenir l'autorité de certification?
Bâtiment sur la réponse de @ Scottyb:
openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/C=US/ST=Oklahoma/L=Stillwater/O=My Company/OU=Engineering/CN=test.com" -keyout ca.key -out ca.crt
openssl genrsa -out "test.key" 2048
openssl req -new -key test.key -out test.csr -config openssl.cnf
openssl x509 -req -days 3650 -in test.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extensions v3_req -extfile openssl.cnf -out test.crt
L'erreur donne un indice sur la manière de corriger. Si vous combinez le certificat et la clé privée générée ci-dessus dans un seul fichier, Android l'acceptera:
openssl pkcs12 -export -in test.crt -inkey test.key -out test-combined.p12
Transférez le fichier .P12 sur votre Android Téléphone, puis utilisez l'installation à partir du stockage de périphérique. Donnez-lui un beau nom de lisage humain et le certificat CA peut maintenant être utilisé avec des services tels que des serveurs Web qui utilisent la ca.key & ca.crt.
Voici un extrait de configuration Nginx pour refuser toutes les connexions, à l'exception de ceux qui présentent un certificat signé par le CA ci-dessus CERT:
# within server block, eg. under the ssl_certificate config
ssl_client_certificate /etc/ssl/ca/ca.crt;
ssl_trusted_certificate /etc/ssl/ca/ca.crt;
ssl_verify_client optional_no_ca;
if ($ssl_client_verify != SUCCESS) { return 403; }
Lorsque votre Android Browser visite désormais ce site Web, il ne vous laissera plus que si vous présentez un certificat signé.