Создание собственного CA
С OpenSSL, Вы можете создать ваши собственные сертификаты и даже Certificate Authority - это значит, что Вы можете создать, подписать и распространить свой сертификат по всему миру. В этом случае вся мировая общественность не сможет опознать Вас как CA ("я хочу принять сертификат ООО "Хренсгоры"? Нет!"), но позволяет идентифицировать уникальный хост. И это - все, что Вам необходимо для двух хостов, соединяющихся с вашим туннельным сервером.
Вы можете захотеть создать свой CA на туннельном сервере, а можете и не захотеть. Вам решать.
Для начала, входите на любой хост, который будет играть роль CA и создайте каталог, где Вы будете хранить свои сертификаты. Создать подкаталоги CA (demoCA), можно запустив следующий сценарий:
Код:
/usr/local/ssl/misc/CA.pl -newca
(могут быть разные пути дапустим в ubuntu 8.04 : /usr/lib/ssl/misc/CA.pl -newca )
Когда будет запрошено имя сертификата CA, нажмите Enter. Затем будет запрошен пароль на защиту секретного ключа CA. Очень важно озаботиться безопасностью этого пароля, иначе любой человек сможет подписывать сертификаты от Вашего имени. Затем, будет запрошена информация о вашем местоположении, компании, общем имени, и адресе электронной почты. Все это понятно, кроме "общего имени". Это - принудительный бит однозначного определения данных, типа полностью уточненного имени домена Вашего хоста или Вашего имени.
После ввода требуемой информации, подкаталог demoCA будет создан. При большом желании можно дать chmod к файлу частного ключа (demoCA/private/cakey.pem), разрешив его на чтение только для root. Но это не должно быть необходимым, ведь Вы указали хороший пароль?
Вы можете игнорировать большинство содержания demoCA, но в ближайшем будущем Вы будете должны использовать demoCA/cacert.pem.
Создание и установка сертификатов :
Теперь, когда все готово для подписи сертификатов, Вы можете создавать их для всех хостов Вашей сети. Есть несколько простых шагов, одинаковых для каждого удаленного хоста и туннельного сервера.
Первый шаг должен создать публичный ключ и запрос сертификата. На сервере СА выполните:
Код:
openssl req -new -nodes -keyout apache_key.pem -out apache_key.pem -days 3650
Затем, сертификат должен быть подписан :
Код:
openssl ca -policy policy_anything -out apache_cert.pem -infiles apache_key.pem
В результате Вы будете теперь иметь два файла, чтобы скопировать их на соответствующую машину: apache_key.pem и apache_key.crt.
Поместите их в /etc/apache2/cert/ Задайте минимальный права доступа (на своё усмотрение) . Ну и естейственно в настройках пропишите пути на них, штоб MOD SSL мог с ними работать :
Код:
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@localhost
SSLEngine On
SSLCertificateFile /etc/apache2/cert/apache_cert.pem
SSLCertificateKeyFile /etc/apache2/cert/apache_key.pem
DocumentRoot /var/www
</VirtualHost>
_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.