I just did a successful build and run using this workflow - it has been described in summary as a response to this question:
This is a more detailed step-by-step guide of the process.
1. Download and Install OpenSSL
Download and install OpenSSL for Windows 32 bit from this location:
(You may need to install the VC2008 32 Bit Redistributables as well)
For the remainder of this guide, it's assumed you have installed OpenSSL into
which is the default location. I opted to have the binaries installed in the OpenSSL folder after the installer hung on selecting the Windows System directory as a destination (using W7 64).
2. Create a working folder to hold all the certificate files and open a command prompt to that folder.
3. On the command prompt, enter the following to create a key file:
C:\OpenSSL-Win32\bin\openssl genrsa -out mykey.key 2048
4. On the command prompt, enter the following to create a Certificate Signing Request:
C:\OpenSSL-Win32\bin\openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddressemail@example.com, CN=Your Name, C=US"
Replace email address & name by your own and C=US by your country code if needed.
5. Upload the Certificate Signing Request to the Apple Developer Site on
Refresh the page after a few moments and your CSR should be accepted.
6. Click the Download link listed next to your accepted certificate.
This will download the developer_identity.cer file. Store it in the folder you created earlier.
7. On the command prompt, enter the following to convert from .cer to .pem:
C:\OpenSSL-Win32\bin\openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
8. On the command prompt, enter the following to create the .p12 file
C:\OpenSSL-Win32\bin\openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dist.p12
You will be asked to enter a password and confirm it. This password will need to be re-entered when submitting the .p12 file to PhoneGap Build.
9. On the Apple Developer Site, set up your devices, app id and provisioning:
and download the provisioning file, store it in the folder created earlier
10. Upload both the provisioning and the .p12 files to PhoneGap Build:
and provide the password you used before to build the .p12 file.
11. Set your config.xml widget id to the same value as your app id in the Apple developer site.
Note: the Apple app id format is something like
I set the widget ID to the entire value, but that seems to have broken my Android build (get error there now where before it built OK).
Help get this topic noticed by sharing it on Twitter, Facebook, or email.
I'm looking for a way to create a pem file for sending push notifications. I have tried the pem file which is created during the process described in this tutorial (which works great by the way!!) and also the pem file created running the following command on the *.p12 file but both seem to be incorrect according to Apple:
openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts