Вы здесь

Создание сертификата и пары ключей 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($csrNULL$pkey3650);

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

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/.