Вы здесь

Создание сертификата и пары ключей SSL в Ubuntu Linux

Пример php-скрипта, который может быть использован для генерации сертификата и ключей ssl.

Я создавал их через небольшой скрипт на php. Предполагая, что апач уже установлен командой

sudo aptitude install apache2

В DocumentRoot сервера (по умолчанию это /usr/www/) создаем файл createcert.php. Его содержимое:

<?php/* Заполняем структуру о владельце сертификата. */
$info = array(
'countryName' = 'RU',
'stateOrProvinceName' = 'Kaliningrad',
'localityName' = 'Kaliningrad',
'organizationName' = 'My Organization',
'organizationUnitName' = 'My Department',
'commonName' = 'K. V. Krasnov',
'emailAddress' = 'admin@msn.com');
/* Заполняем структуру с параметрами ключа. Из значений, заданных по умолчанию,  изменил лишь длину ключа. Полный список параметров лежит здесь*/
$confgrags = array('private_key_bits' = 4096);

/* Создаем ключ */
$pkey = openssl_pkey_new($confgrags);

/* Заполняем переменную для создания сертификата */
$csr = openssl_csr_new($info, $pkey);
/* Создаем сам сертификат. Последний параметр указывает срок действия сертификата в днях */
$sscert = openssl_csr_sign($csr, NULL, $pkey, 3650);

/* Для контроля посмотрим на экране, что получилось */

openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($pkey, $pkeyout, '', $info) and var_dump($pkeyout);
/* И сохраним созданные ключ и сертификат в файлы */
openssl_pkey_export_to_file($pkey, 'key.pem');
openssl_csr_export_to_file($csr, 'quest.csr');
openssl_x509_export_to_file($sscert, 'certificate.crt');?>

Теперь в строке браузера набираем http://localhost/createcert.php и после раздумий компьютера определенной продолжительности забираем из DocumentRoot созданные файлы.
Оригинал: http://engraver.wordpress.com/2008/08/24/ssl_in_ubuntu/.