2016-04-18 7 views
1

У меня есть пара ключей, порожденную OpenSSL следующим образомИмпорт существующих закрытый ключ в БКС хранилище ключей

OpenSSL genrsa -out private_key.pem 2048

двутавровых преобразовать его в DER формат, следовать

OpenSSL pkcs8 -topk8 информ PEM -outform МЭД -в private_key.pem \ -out private_key.der -nocrypt

И теперь я хочу импортировать его в android, но я не хочу импортировать его, так как я хочу защитить его в хранилище ключей.

Итак, мой вопрос заключается в том, как импортировать существующий ключ в хранилище ключей BKS с помощью keytool?

Благодаря

ответ

2

Private Key A всегда сопровождается Certificate Chain (который включает в себя соответствующий сертификат) в KeyStore. Вы не можете просто добавить его в KeyStore самостоятельно.

После того, как вы создали Private Key, вы можете создать самозаверяющий сертификат, затем вы можете использовать этот сертификат, чтобы добавить свой закрытый ключ вместе с сертификатом в KeyStore.

Создание самозаверяющего сертификат

OpenSSL REQ -new -x509 -key [PRIVATE_KEY_FILE] -out [SELF_SIGNED_CERTIFICATE_FILE] -days 3650 -subj/[YOUR_SUBJECT_DN]

Создание файла PKCS № 12, содержащего PrivateKey и сертификат

OpenSSL PKCS12 -export -inkey [PRIVATE_KEY_FILE] -в [CERTIFICATE_FILE] -out [PKCS12_FILE.p12] -имя MyKey

Наконец, преобразование PKCS12 KeyStore до нужного BKS типа магазина

Keytool -importkeystore -srckeystore [ABOVE_P12_FILE] -srcstorepass [ABOVE_P12_PASSWORD] -srcstoretype PKCS12 -destkeystore [NEW_P12_FILE.p12] -deststorepass [NEW_P12_PASSWORD] -deststoretype BKS -providerclass org.bouncycastle.jce.provider.Bou ncyCastleProvider -providerpath [ABSOLUTE_PATH_TO__bcprov-jdk15on-152.jar]

Если вам нужен тип Java магазин по умолчанию JKS, вы можете удалить -providerclass и -providerpath аргументы из последней команды.

+0

Хорошо, я понимаю, но теперь с файлом PKCS # 12, как я могу прочитать закрытый ключ в java? – RdlP

+1

Вы можете ссылаться на это - http: // stackoverflow.com/questions/150167/how-do-i-list-export-private-keys-from-a-keystore и http://www.java2s.com/Code/Java/Security/RetrievingaKeyPairfromaKeyStore.htm –