Sample code for 30+ languages & platforms
PHP ActiveX

Add Private Key and Certificate to a PEM

See more PEM Examples

Demonstrates how to add certificates and private keys to a PEM.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

// The Chilkat PEM class was introduced in v9.5.0.49.  
// It requires the bundle to be unlocked, as shown above.
$pem = new COM("Chilkat.Pem");

// Add the private key found in alice.key to this PEM.
// 
$privKey = new COM("Chilkat.PrivateKey");

$success = $privKey->LoadAnyFormatFile('qa_data/alice.key','');
if ($success != 1) {
    print $privKey->LastErrorText . "\n";
    exit;
}

// Add it to the PEM:
$success = $pem->AddPrivateKey($privKey);

// Add the certificate found in alice.crt to this PEM.
// 
$cert = new COM("Chilkat.Cert");

$success = $cert->LoadFromFile('qa_data/alice.crt');
if ($success != 1) {
    print $cert->LastErrorText . "\n";
    exit;
}

// Add it to the PEM:
$includeCertChain = 0;
$success = $pem->AddCert($cert,$includeCertChain);

// Write the PEM containing the private key and certificate.
// The private key will be output in PKCS8 encrypted form.
// Certificates are never encrypted.

// This is the password that will be required to open and access the private key
// from the PEM we're about to write..
$password = 'secret';
$extendedAttrs = 0;
$noKeys = 0;
$noCerts = 0;
$noCaCerts = 0;
$encryptAlg = 'aes128';

$pemStr = $pem->toPemEx($extendedAttrs,$noKeys,$noCerts,$noCaCerts,$encryptAlg,$password);
print $pemStr . "\n";

?>