- Convert PFX to .Crt & .Key Files
- Convert PFX to .Crt & .Key Files
- Extract the private key from the .pfx file
- Extract .crt file from the .pfx certificate
- Extract the .key file from the encrypted private key from step 1.
- Conclusion
- PREVENT YOUR SERVER FROM CRASHING!
- 2 Comments
- Linux pfx to crt
- CRT и KEY из PFX
- KEY и CRT в PFX
- ionutzp / Howto convert a PFX to a seperate .key & .crt file.md
- junxy / Howto convert a PFX to a seperate .key & .crt file.md
Convert PFX to .Crt & .Key Files
Here at Bobcares, we often handle requests from our customers to fix similar errors as a part of our Server Management Services.
Today, let us see how to convert the .pfx file into a .crt or .key file from the encrypted key using OpenSSL for free.
Convert PFX to .Crt & .Key Files
OpenSSL is a full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.
If we have the .pfx certificate from the SSL providers/registrars like a network solution, GoDaddy, big rock, etc., then we are good to proceed with the following without any hurdles.
In order to begin, our Support Techs recommend having:
- An OpenSSL package in the system.
- Then a .pfx file for the chosen domain name
- Windows/Ubuntu/Linux system to utilize the OpenSSL package with crt
Extract the private key from the .pfx file
openssl pkcs12 -in [yourfilename.pfx] -nocerts -out Linux pfx to crt
With this command, we can extract the private key from the .pfx file.
Now we need to provide the import password of the .pfx file. This is to protect the keypair created for the .pfx file.
Once we enter it, OpenSSL requests to type another password twice. This new password is to protect the .key file.
theraxton@ubuntu:~/Downloads/SSL-certificate$ openssl pkcs12 -in samplefilename.pfx -nocerts -out samplefilenameencrypted.key Enter Import Password: Enter PEM pass phrase: Verifying — Enter PEM pass phrase: theraxton@ubuntu:~/Downloads/SSL-certificate$
Extract .crt file from the .pfx certificate
openssl pkcs12 -in [yourfilename.pfx] -clcerts -nokeys -out [certificatename.crt]
After that, we press enter and give the password for the certificate, hit enter again.
Eventually, the certificate will appear in the same directory.
theraxton@ubuntu:~/Downloads/SSL-certificate$ openssl pkcs12 -in samplefile.pfx -clcerts -nokeys -out samplefileencrypted.crt Enter Import Password:
Extract the .key file from the encrypted private key from step 1.
openssl rsa -in Linux pfx to crt -out Linux pfx to crt
Here, we enter the import password from step 1.
As a result, we have a certificate(.crt) and two private keys ( encrypted and unencrypted).
theraxton@ubuntu:~/Downloads/SSL-certificate$ openssl rsa -in samplefilenameencrypted.key -out samplefilenameunencrypted.key Enter pass phrase for samplefilenameencrypted.key: writing RSA key
Finally, we can use .crt and .key files to run the Node / Angular / Java application with these obtained files.
[Finding it difficult? We can help you out]
Conclusion
In short, we saw how our Support Techs go about converting PFX.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
2 Comments
This post really helped with my issues on a certificate installation. Thank you for the sharing. Regards. Reply
Linux pfx to crt
Сделать файлы CRT и KEY из PFX может потребоваться в том случае, если вы используете какое-либо UNIX/Linux-приложение с поддержкой доступа по SSL. Чаще всего это веб-приложения. В противовес этому подходу Windows использует сертификаты в формате .pfx для хранения пары закрытый-открытый ключи враз, разумеется с защитой паролем при попытке экспорта.
SSL-сертификаты на данный момент распространены повсеместно и работать с ними приходится постоянно.
Если у вас все ещё нет сертификата от публичного ЦС, тогда для этого сначала нужно сделать CSR-запрос. Следующий шаг — отправить его в ЦС и пройти проверку домена/организации (вам отправят письмо с кодом подтверждения на какой-либо админский адрес, либо позвонят на корпоративный номер телефона в зависимости от типа проверки).
Как только все формальности пройдены, на почту вы получите архив с нужным вам сертификатом в формате .crt (и всей цепочкой промежуточных на всякий случай).
CRT и KEY из PFX
Воспользуемся всем знакомой утилитой openssl, чтобы вытащить открытую часть pfx-сертификата:
$ openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt
Нужно будет ввести пароль, который вы указывали при экспорте .pfx-сертификата. Теперь попробуем извлечь закрытую часть сертификата, поместив её в отдельный запароленный файл:
$ openssl pkcs12 -in certificate.pfx -nocerts -out key-encrypted.key
После выполнения команды вам придется ввести не только пароль, который использовался для экспорта .pfx-сертификата, но и новый пароль, необходимый для защиты .key-файла. Далее вы вполне можете использовать все полученные ранее файлы сертификата для настройки какого-либо сервиса, использующего SSL (например Apache или Nginx).
Закрытый ключ сертификата с парольной защитой не всегда удобно использовать на реальном окружении. Например тот же Apache будет спрашивать пароль при каждом рестарте сервиса, что будет требовать человеческого участия. Обойти проблему можно, сняв пароль с закрытого ключа:
$ openssl rsa -in key-encrypted.key -out key-decrypted.key
Будьте крайне осторожны в этом случае, чтобы не допустить компрометацию закрытого ключа. Установите на файл соответствующие права, чтобы никто кроме вас не имел к нему доступ:
$ chmod 600 key-decrypted.key
KEY и CRT в PFX
Ну а теперь рассмотрим обратную процедуру
Сшивание двух файлов ключей — открытого и закрытого — может потребоваться для сервисов на базе Windows, которые привыкли видеть сертификаты в формате .pfx. Также в некоторых случаях хранить пары ключей удобнее именно в формате pfx.
Примечание: если вы генерировали csr-запрос на стороне сервера Windows, то вам придется его завершить, подсунув файл .crt, который вам позже пришлет ваш ЦС. В итоге экспортировать сертификат из оснастки MMC вы сможете именно в формате .pfx. Иной вариант — если csr создавался с помощью утилиты openssl. В этом случае вероятно у вас уже будут crt и key, которые потребуется собрать в pfx.
Собрать crt и key в pfx можно командой:
$ openssl pkcs12 -inkey certificate.key -in certificate.crt -export -out certificate.pfx
Как только нажмете Enter, нужно будет ввести пароль от файла закрытого ключа (если этот пароль есть), а также пароль для экспорта в pfx. После этого смело используйте файл на серверах Windows, но не забудьте при импорте отметить ключ экспортируемым (иначе экспортировать ключ потом не получится).
В этой статье мы рассмотрели как сделать файлы CRT и KEY из PFX и обратно. Надеюсь, вам она была полезна.
ionutzp / Howto convert a PFX to a seperate .key & .crt file.md
What this command does is extract the private key from the .pfx file. Once entered you need to type in the importpassword of the .pfx file. This is the password that you used to protect your keypair when you created your .pfx file. If you cannot remember it anymore you can just throw your .pfx file away, cause you won’t be able to import it again, anywhere!. Once you entered the import password OpenSSL requests you to type in another password, twice!. This new password will protect your .key file.
Now let’s extract the certificate:
openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [certificate.crt]
Just press enter and your certificate appears.
Now as I mentioned in the intro of this article you sometimes need to have an unencrypted .key file to import on some devices. I probably don’t need to mention that you should be carefully. If you store your unencrypted keypair somewhere on an unsafe location anyone can have a go with it and impersonate for instance a website or a person of your company. So always be extra careful when it comes to private keys! Just throw the unencrypted keyfile away when you’re done with it, saving just the encrypted one.
openssl rsa -in Linux pfx to crt -out Linux pfx to crt
- When you first extract the key, apply a new password (probably the same as you used to extract it) and then create an unencrypted key with the rsa command above
- Use an encrypted key file for NGINX otherwise it’ll ask for the password every time it is restarted.
- Check the top of the extract .crt file for extra bits above the —-BEING. line and remove if necessary
- This certificated needs to be concatenated with the full chain of certificate authorities cat domain.crt CA_bundle.crt > final.crt
- test the cert with openssl s_client -showcerts -connect www.domain.com:443
With following procedure you can change your password on an .pfx certificate using openssl.
Export you current certificate to a passwordless pem type: [user@hostname]>openssl pkcs12 -in mycert.pfx -out tmpmycert.pem -nodes Enter Import Password: MAC verified OK
Convert the passwordless pem to a new pfx file with password: [user@hostname]openssl pkcs12 -export -out mycert2.pfx -in tmpmycert.pem Enter Export Password: Verifying — Enter Export Password:
Remove the temporary file: [user@hostname]rm tmpmycert.pem
Now you are done and can use the new mycert2.pfx file with your new password.
junxy / Howto convert a PFX to a seperate .key & .crt file.md
What this command does is extract the private key from the .pfx file. Once entered you need to type in the importpassword of the .pfx file. This is the password that you used to protect your keypair when you created your .pfx file. If you cannot remember it anymore you can just throw your .pfx file away, cause you won’t be able to import it again, anywhere!. Once you entered the import password OpenSSL requests you to type in another password, twice!. This new password will protect your .key file.
Now let’s extract the certificate:
openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [certificate.crt]
Just press enter and your certificate appears.
Now as I mentioned in the intro of this article you sometimes need to have an unencrypted .key file to import on some devices. I probably don’t need to mention that you should be carefully. If you store your unencrypted keypair somewhere on an unsafe location anyone can have a go with it and impersonate for instance a website or a person of your company. So always be extra careful when it comes to private keys! Just throw the unencrypted keyfile away when you’re done with it, saving just the encrypted one.
openssl rsa -in Linux pfx to crt -out Linux pfx to crt
- When you first extract the key, apply a new password (probably the same as you used to extract it) and then create an unencrypted key with the rsa command above
- Use an encrypted key file for NGINX otherwise it’ll ask for the password every time it is restarted.
- Check the top of the extract .crt file for extra bits above the —-BEING. line and remove if necessary
- This certificated needs to be concatenated with the full chain of certificate authorities cat domain.crt CA_bundle.crt > final.crt
- test the cert with openssl s_client -showcerts -connect www.domain.com:443