За матеріалами статей:

Stricty (http://www.opennet.ru/base/sec/ssl_freebsd.txt.html)
Alexch (http://www.opennet.ru/base/net/apache_mod_ssl.txt.html)

Нещодавно на OpenNET були опубліковані дві статті на тему установки
Apache з підтримкою SSL під FreeBSD.
Ключовий момент — генерація сертифікатів.

І якщо в статті у Stricty представлена хоч і не зовсім вдала
(малозрозуміла система іменування файлів, зайві дії), але за
принаймні самостійна спроба розібратися в цьому питанні,
у alexch — чистої води плагіат.
Не згоден з коментарем Максима Чиркова — нового в цій статті
нічого немає. Такого сорту статті тільки заплутує читачів.

Насправді не потрібно заново винаходити велосипед, у стандартній
постачання Apache + mod_ssl і в openssl є все необхідне.

Установка Apache 1.3 з підтримкою SSL робиться дуже просто:

cd /usr/ports/www/apache13-modssl (англійська версія)

або

cd /usr/ports/russian/apache13-modssl (російська версія)
make
make certification TYPE=custom
make install

при генерації сертифікатів створюється нешифрованный ключ кореневого
сертифіката (ca.key), сертифікаційний запит (ca.csr) і
кореневий сертифікат самопідписаний (ca.crt), нешифрованный ключ
сервера (server.key) сервера, сертифікаційний запит (server.csr)
і підписаний кореневим сертифікатом власне сертифікат сервера
(server.crt). Буде запропоновано зашифрувати ключі.

При відповіді на питання в процесі генерації сертифікаційного запиту
сервера необхідно врахувати, що commonName — це обов’язково головне
доменне ім’я хоста. Для сертифікаційного запиту кореневого
сертифіката цей параметр не має значення.

Ключі можна шифрувати, а можна і не шифрувати. При запуску з Apache
шифрованим ключем буде потрібно ввести пароль, це можна зробити за
допомогою зовнішньої програми.

І найголовніше — файл кореневого сертифікату ca.crt необхідно
передати на клієнтський комп’ютер і ввести в сховище сертифікатів
браузера. Тільки в цьому випадку при звертанні до нашого сервера за
захищеному протоколу браузер НЕ БУДЕ видавати попередження, що
сертифікат виданий організацією, яка не входить до складу довірених.

Автори вищезазначених статей пропонують ставити посилання на файл
кореневий сертифікат в рядку

SSLCACertificateFile /usr/local/etc/apache/ssl.crt/ca.crt

конфігураційного файлу httpd.conf, але це невірно.
Дана опція призначена для організації перевірки сертифікатів
КЛІЄНТІВ на стороні сервера.

Згенерувати сертифікати можна і по іншому.
До складу дистрибутива openssl входять сценарії CA.sh і CA.pl

cd /usr/local/openssl/misc

створюємо кореневий сертифікат

./CA.sh -newca

генеруємо особистий ключ та сертифікаційний запит сервера

./CA.sh -newreq

і підписуємо його своїм кореневим сертифікатом.

./CA.sh -sign

переписуємо ключ і сертифікат сервера в службовий каталог Apache

cp newreq.pem /usr/local/etc/apache/sslkey/server.key
cp newcert.pem /usr/local/etc/apache/ssl.crt/server.crt

Файл кореневого сертифіката ./demoCA/cacert.pem необхідно
поширити по клієнтським комп’ютерам.

Якщо хто бажає дізнатися про генерації ключів і сертифікатів більшою
мірою, рекомендую звернутися до документації на ssl

lynx /usr/local/share/doc/apache/manual/mod/mod_ssl/ssl_faq.html