Эту статью следует викифицировать. |
Самозаверенный сертификат — специальный тип сертификата, подписанный самим его субъектом. Технически данный тип ничем не отличается от сертификата, заверенного подписью удостоверяющего центра (УЦ), только вместо передачи на подпись в УЦ пользователь создаёт свою собственную сигнатуру. Проще говоря, создатель сертификата сам является в данном случае УЦ. Все корневые сертификаты доверенных УЦ являются самозаверенными.
Поскольку самозаверенный сертификат не заверяется удостоверяющим центром, в соответствии с п. 3.3 RFC 2459, такой сертификат невозможно отозвать.
Теоретически, это позволяет осуществить Man-in-The-Middle-атаку, при которой злоумышленник может перехватить сертификат узла-инициатора шифрованного соединения и вместо него отправить узлу назначения свой поддельный, с помощью которого передаваемые данные можно будет дешифровать.
При этом, подобным образом скомпрометированный сертификат нельзя будет отозвать, так как он не заверен УЦ.
Создадим файлы cert.key и cert.crt, в которых будут храниться секретный ключ и открытый сертификат, основанный на нём. Сертификат будет действителен в течение Х дней; (ключ с опцией -nodes будет нешифрованным).
openssl req -x509 -nodes -days X -newkey rsa:2048 -keyout cert.key -out cert.crt
Х нужно заменить на нужное кол-во дней. После вызова команды надо будет ответить на вопросы о владельце и т.д. На вопрос “Common Name” нужно отвечать именем домена, для которого планируется использовать этот сертификат. В результате выполнения команды у вас будет 2 файла: cert.key (с секретным ключом сервера) и cert.crt (с публичным ключом), которые уже можно использовать в конфигурациях серверов.
Например (файлы сертификата предварительно положены в каталог /etc/ssl/ ):
server {
listen 443;
server_name site.ru;
ssl on;
ssl_certificate /etc/ssl/cert.crt;
ssl_certificate_key /etc/ssl/cert.key;
location / {
root /var/www/site.ru;
}
}
NameVirtualHost *:443
<VirtualHost *:443>
ServerName site.ru
ServerAdmin admin@site.ru
SSLEngine on
SSLCertificateKeyFile /etc/ssl/cert.key
SSLCertificateFile /etc/ssl/cert.crt
DocumentRoot /var/www/site.ru/
<Directory />
Options -Indexes FollowSymLinks -MultiViews
AllowOverride All
</Directory>
<Directory /var/www/site.ru>
Options -Indexes FollowSymLinks -MultiViews
AllowOverride All
Order deny,allow
allow from all
</Directory>
DirectoryIndex index.htm index.php
</VirtualHost>
Можно автоматизировать ввод ответов с помощью опции -subj:
openssl req \ -x509 -nodes -days 365 \ -subj '/C=RU/..../CN=имя_домена' \ -newkey rsa:2048 -keyout cert.key -out cert.crt
Для улучшения этой статьи желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .