Создание файла.p12
С помощью openssl
Я создал закрытый ключ следующим образом:
openssl genrsa -out myKey.pem
Затем, чтобы сгенерировать csr
по требованию CA я выполнил следующее:
openssl req -new -key myKey.pem -out cert.csr
CA ответил сертификатом, который я сохранил в файле с именем myCert.cer
Теперь я хотел бы объединить необходимые компоненты (закрытый ключ, открытый ключ (?) И сертификат) в один .p12
, Для этого я запустил следующее:
openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in myCert.cer
но я получаю следующее сообщение об ошибке:
No certificate matches private key
Как я могу сделать это?
2 ответа
openssl
документация говорит, что файл поставляется как -in
аргумент должен быть в формате PEM.
Оказывается, что, вопреки руководству CA, сертификат, возвращенный CA, который я хранил в myCert.cer
это не формат PEM, а PKCS7.
Для того, чтобы создать мой .p12
Я должен был сначала преобразовать сертификат в PEM:
openssl pkcs7 -in myCert.cer -print_certs -out certs.pem
а затем выполнить
openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in certs.pem
Я отлаживаю проблему, связанную с SSL-подключением к базе данных (MySQL RDS) с использованием ORM под названием Prisma. Для строки подключения к базе данных требуется файл PKCS12 (.p12) (если интересно, описано здесь ), который привел меня сюда.
Я знаю, что на этот вопрос был дан ответ, но я нашел следующие шаги (в Github Issue#2676) полезными для создания файла .p12 и хотел поделиться ими. Удачи!
Сгенерируйте 2048-битный закрытый ключ RSA:
openssl genrsa -out key.pem 2048
Создайте запрос на подпись сертификата:
openssl req -new -sha256 -key key.pem -out csr.csr
Создайте самозаверяющий сертификат x509, подходящий для использования на веб-серверах.
openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
Создайте файл идентификации SSL в PKCS12, как указано здесь.
openssl pkcs12 -export -out client-identity.p12 -inkey key.pem -in certificate.pem