Об SSL каждый думает сегодня. Бесплатный сертификат Let’s Encrypt становится чрезвычайно распространенным явлением, нет никаких причин для тех, кто не использует SSL — не говоря уже о преимуществах ранжирования поиска, и тот факт, что браузеры будут доверять вашему сайту.
Однако вы также можете создать свой собственный САМОЗАВЕРЯЮЩИЙ SSL сертификаты для частного использования на своем сервере. Одна из главных причин сделать это -шифрование. В то время как ваш личный сертификат ничего не будет означать для браузеров, и посетители все равно получат предупреждение, если они посетят ваш сайт напрямую, вы можете по крайней мере быть уверены, что вы защищены от атак “man-in-the-middle”. Самозаверяющий сертификат — это хороший первый шаг, когда вы просто тестируете что-то на своем сервере, и, возможно, даже не имеете доменного имени.
Вот пошаговая процедура создания САМОЗАВЕРЯЮЩЕГО SSL-сертификата в Linux.
Шаг 1: создайте пару ключей RSA
Первым шагом является использование пакета «openssl» на Linux/CentOS для создания пары ключей RSA. Для этого убедитесь, что у вас установлен пакет. Если нет, установите его:
sudo yum install openssl
Скорее всего, у вас уже есть в вашей системе. Если это так, создайте ключ/пару с помощью следующей команды:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Эта команда использует 2048-битное шифрование и выводит файл под названием «keypair.key».
Ключ будет сгенерирован и помещен в текущий каталог.
Шаг 2: Извлеките закрытый ключ в папку «httpd»
Папка «/etc/httpd», где система хранит все важные материалы, связанные с SSL. Итак, во-первых, давайте создадим новую папку для хранения всех файлов, относящихся к нашему закрытому ключу:
sudo mkdir /etc/httpd/httpscertificate
Мы назвали папку “httpscertificate” и будет ссылаться на него для всех других примеров командной строки.
Чтобы извлечь закрытый ключ из только что созданного файла keypair, введите следующую команду:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Замените в разделе bold на IP-адрес вашего сервера. Или, если вы можете получить доступ к сайту с доменным именем, Вы также можете использовать его.
Это создаст файл «key» в папке, которую мы только что создали. И когда это будет сделано, мы можем удалить исходный файл пары ключей:
rm keypair.key
Шаг 3: создание «Certificate Signing Request» или файла CSR
С помощью ключа мы можем создать специальный файл «csr», который мы можем подписать или отправить в «центр сертификации». Это в стандартизированном формате. Чтобы создать его, введите следующую команду:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Опять же, заменить элементы в bold на IP-адрес или имя домена, которое вы установили на Шаге 2. При выполнении этой команды инструмент запросит у вас кучу личной информации.
CA может использовать эти детали, чтобы проверить, что вы действительно тот, кто вы есть на самом деле. Заполните как можно больше информации.
Как только вы закончите вводить эти данные, инструмент закроет свою работу и разместит файл «csr» в каталоге, который мы создали для этой цели.
Шаг 4: создание сертификата «.crt»
С помощью CSR мы можем создать файл окончательного сертификата следующим образом:
openssl x509 -req -days 365 -in /etc/httpd/httpscertificate/012.345.678.90.csr -signkey /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.crt
Это создает файл «crt» вместе со всеми остальными.
Теперь мы должны сказать Apache, где эти файлы.
Шаг 5: Настройка Apache для использования файлов
Для начала необходимо установить пакет «mod_ssl» с командой:
sudo yum install mod_ssl
После того, как это будет сделано, место файла “ssl.conf » внутри папки /etc/httpd/conf.d/. Нам нужно изменить этот файл по умолчанию:
sudo vi /etc/httpd/conf.d/ssl.conf
Теперь прокрутите вниз, пока не найдете строки, начинающиеся с:
SSLCertificateFile SSL CertificateKeyFile
Измените пути по умолчанию с путями к файлу сертификата и файлу ключа соответственно, как показано здесь:
Сохраните изменения. Теперь просто перезапустите Apache:
sudo apachectl restart
Все. Вы закончили! После перезапуска Apache будет настроен на разрешение SSL-подключений.
При следующем подключении к IP-адресу через HTTPS вас предупредят, что это не доверенный сертификат.
Все в порядке. Мы знаем это, так как мы подписали его сами! Просто продолжайте, и это приведет вас к окончательному сайту.
Здесь вы можете видеть, что используется сертификат, который мы создали. Это не очень полезно для тех, кто посещает ваш сайт, так как они не могут проверить вашу личность. Но вы знаете, что он безопасный, и более того, что он зашифрован.