Немного о сертификатах.
Сертификат SSL служит для шифрования трафика, главным образом предназначенный для обеспечения безопасной передачи данных по защищенному каналу.
Сертификаты могут быть самозаверенными либо выдаются удостоверяющим центром. Технически в них нет никакой разницы, однако сертификаты заверенные удостоверяющими центрами считаются более предпочтительными т.к. есть некоторые нюансы которые теоретически указывают на небезопасность соединения при использовании самозаверенных сертификатов.
Так или иначе, мы попробуем создать SSL сертификат самостоятельно. Первым делом нам необходимо установить Mod SSL.
Шаг первый – Установка mod_ssl
Убедитесь, что у вас установлен Apache + mod_ssl. Для установки mod_ssl введите в консоли сервера команду:
yum install mod_ssl
Шаг второй – создайте директорию
Для хранения сертификатов так же неплохо было бы создать отдельную директорию.
mkdir /etc/httpd/ssl
Шаг третий, создаем самоподписанный сертификат
Для генерации сертификата воспользуемся одной из команд OpenSSL. Создавая сертификат, укажите срок действия сертификата, в нашем примере указано 365 дней.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
После ввода этой команды вам в интерактивном режиме будет задано несколько вопросов, на которые следует ответить.
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:KZ State or Province Name (full name) [Some-State]:South Kazakhstan Locality Name (eg, city) []:Shymkent Organization Name (eg, company) [Internet Widgits Pty Ltd]:href blog Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:example@example.com
Шаг четвертый – устанавливаем сертификат
Теперь в дополнительном конфигурационном файле Apache пропишем настройки для виртуальных хостов.
Открываем конфигурационный файл SSL:
vi /etc/httpd/conf.d/ssl.conf
Найдите строку начинающиеся с записи <VirtualHost _default_:443>, здесь нужно кое-что подправить.
Сделайте записи:
ServerName example.com:443 SSLEngine on SSLCertificateFile /etc/httpd/ssl/apache.crt SSLCertificateKeyFile /etc/httpd/ssl/apache.key
По большому счету все готово. Сохраните сделанные изменения.
Перезапустите сервер Apache:
/etc/init.d/httpd restart
Откройте в браузере ваш сайт, убедитесь, что всё работает.