Метки

, , , ,

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

sudo aptitude install apache2

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

/* Заполняем структуру о владельце сертификата. */
$info = array(
                'countryName' => 'UA',
                'stateOrProvinceName' => 'Kiev',
                'localityName' => 'Kiev',
                'organizationName' => 'My Organization',
                'organizationUnitName' => 'My Department',
                'commonName' => 'V. I. Pupkinne',
                'emailAddress' => 'pupkinne@example.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 созданные файлы.