i am in the process of changing a server from using a self signed certificate to a wildcard certificate we got from godaddy.
like most things, once you do it once its a snap and takes no time at all, but the first time you have to figure it out, which can take a while (i blew an hour on this today).
simply put, i needed to create a certificate signing request (a CSR), private key, and then have godaddy give me back a public certificate and a CA certificate. the last step, and the one that took me a bit to figure out, was that windows (its a windows server i need the cert for) is expecting a certificate that has both the private key and public cert in one pretty package.
heres what i did:
to create the private key and cert via openssl:
1
| openssl req -new -newkey rsa:2048 -keyout private.key -out cert_request.csr |
note: you will be asked to provide a PEM pass phrase and a challenge password
i then uploaded my certificate request to godaddy, who then provided me with two things: a public certificate and intermediate certificate authority.
next, i combined the private key and the new certificate godaddy gave me into one file (order is important) and named it certificate.pem

lastly, i ran the following command to generate the p12 file windows wanted that included both the private key and certificate:
1
| openssl pkcs12 -export -in certificate.pem -out certificate.p12 |

thats it. you should now have a private key, certificate signing request, a intermediate CA certificate, a public certificate, and a windows certificate that has both the public and private key in it
reference: http://www.tfproject.org/tfp/tilted-technology/140412-how-export-ssl-certificate-linux-windows-iis.html