Я создавал их через небольшой скрипт на 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 созданные файлы.