Moving SSL Certs from IIS to Apache
August 27, 2003
I found some instructions for converting SSL certificates generated for IIS to private key, and cert files you can use on unix, or Apache for windows.
First Export your IIS certificate into a pfx file (this is something you should do anyways for backup)
- Run mmc.exe
- Click the 'Console' menu and then click 'Add/Remove Snap-in'.
- Click the 'Add' button and then choose the 'certificates' snap-in and click on 'Add'.
- Select 'Computer Account' then click 'Next'.
- Select 'Local Computer' and then click 'OK'.
- Click 'Close' and then click 'OK'.
- Expand the menu for 'Certificates' and click on the 'Personal' folder.
- Right click on the certificate that you want to export and select 'All tasks' -> 'Export'.
- A wizard will appear. Make sure you check the box to include the private key and continue through with this wizard until you have a .PFX file.
Next run openssl to extract the private key, and the cert file.
# Export the private key file from the pfx file
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
# Export the certificate file from the pfx file
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
# This removes the passphrase from the private key so Apache won't
# prompt you for your passphase when it starts
openssl rsa -in key.pem -out server.key
Trackback Address: 16/195A38186A1E17FDB0DA824192C835B8
This is great! Thank you for the clear step by step!
Great article! Very useful step by step.
Thanks - this helped a lot
short and sweet. all seems so clear and refined when someone with real knowledge can give a to-the-point answer
Hi all, everything else is fine, but I need some more inputs. I installed a certificate on to my site using the above instructions. the problem with the resultant certificate is that somehow, the information regarding the CA authority is not transferred to teh converted certificate, and hence the certificate never gets installed. everytime a person hits the site with a new browser, there is a popup for accepting the certificate. Can any one please let me know how the information loss can be removed? Please also mail the response at email@example.com (if you think its ok). thanks in advance.
Excellent - very useful, worked first time
Yes this guide works, but then how do you get the files to work in Apache under Linux?
Good stuff, worked perfectly to migrate from IIS6 to Apache 2.2 on Winders. Thanks, Pete.
Is there a mirror for the instructions link? http://www.freeroller.net/page/kwiersma/20030401 doesn't seem to work anymore.
I followed the instructions and ended up with a server.key, key.pem and a cert.pem. But i read a other tutorial saying i need a .cert file and a .key file instead of .pem file. What amn i doing wrong?
Thanks for any help in advance!
"I followed the instructions and ended up with a server.key, key.pem and a cert.pem. But i read a other tutorial saying i need a .cert file and a .key file instead of .pem file. What amn i doing wrong?"
the .pem file contains the text for your cert file AND your key file.
Paste EVERYTHING (including the following lines) in between these lines into your WHATEVER.key file: -----BEGIN RSA PRIVATE KEY----- BLAH BLAH BLAH -----END RSA PRIVATE KEY-----
Paste EVERYTHING (including the following lines) in between these lines into your WHATEVER.cert file: -----BEGIN CERTIFICATE----- MORE BLAH BLAH BLAH -----END CERTIFICATE-----
Now you have a cert and a key file.
"I installed a certificate on to my site using the above instructions. the problem with the resultant certificate is that somehow, the information regarding the CA authority is not transferred to teh converted certificate, and hence the certificate never gets installed."
You'll want to dosomething like:
openssl pkcs12 -in filename.pfx -cacerts -nokeys -out cacert.pem
And add the cacert to your apache config so it knows the Cert Authority.
Very useful. I've translated it into Spanish:
Thanks Pete, as usual you have proven to be a wealth of useful information!
yalar?m.... çok sa?olas?n
Thank you! This just saved my butt :)
If you're trying to setup a GoDaddy SSL from a .pfx file in Cpanel or WHM, here are a couple tips that I hope will save you some time. * first remove any files in the ssl/certs/ and ssl/private/ directories for the account (i.e. home/yoursite/ssl/) * if you have access to WHM, use the "Manage SSL Hosts" to double check for entries - delete any for the domain in question * then check the "SSL Key/Crt Manager" - delete anything related to the domain you're setting up SSL for * if you followed the instructions above, you'll have the certs.pem and the now decrypted key.pem, but for GoDaddy you need the CA: * openssl pkcs12 -in filename.pfx -cacerts -nokeys -out cabundle.pem * the text in those three .pem files (certs, key, cabundle) is all you need to copy into your SSL install page - crt, key, ca bundle * for WHM it's the "Install a SSL Certificate and Setup the Domain" tool
...maybe this is the long way around, but wanted to make sure I used the WHM/Cpanel tools since I don't know everything it's doing under the hood.
Excellent post, everything you need to setup SSL on your mail servers as well
Thanks... clear, concise and effective..!
Thanks... Helped more than you know...
That is missing the CA BUNDLE FILE CREATION that openvpn needs: openssl pkcs12 -in domain.pfx -cacerts -nokeys -out cabundle.pem