СОЗДАНИЕ SSL-СЕРТИФИКАТА В APACHE ДЛЯ CENTOS 6

О самоподписанных сертификатах

SSL-сер­ти­фи­кат – это спо­соб шиф­ро­ва­ния инфор­ма­ции сай­та с целью создать более защи­щен­ное соеди­не­ние. Кро­ме того, такой сер­ти­фи­кат может предо­ста­вить посе­ти­те­лям сай­та иден­ти­фи­ка­ци­он­ную инфор­ма­цию вир­ту­аль­но­го сер­ве­ра. SSL-сер­ти­фи­кат мож­но полу­чить в цен­тре сер­ти­фи­ка­ции (ЦС); тем не менее, суще­ству­ют и  само­сто­я­тель­но под­пи­сан­ные сер­ти­фи­ка­ты, кото­рые не нуж­да­ют­ся в под­твер­жде­нии сто­рон­ни­ми лицами.

Thank you for reading this post, don't forget to subscribe!

1: Установка mod_ssl

Преж­де чем при­сту­пить к созда­нию само­под­пи­сан­но­го сер­ти­фи­ка­та, нуж­но убе­дить­ся, что на сер­ве­ре уста­нов­ле­ны Apache и модуль mod_ssl. При необ­хо­ди­мо­сти их мож­но уста­но­вить с помо­щью одной команды:

yum install mod_ssl

2: Создание нового каталога

Далее нуж­но создать новый ката­лог для хра­не­ния клю­ча и сертификата:

mkdir /etc/httpd/ssl

3: Создание самоподписанного сертификата

Созда­вая сер­ти­фи­кат, необ­хо­ди­мо ука­зать срок его дей­ствия; для это­го изме­ни­те зна­че­ние 365 нуж­ным коли­че­ством дней. Без изме­не­ний сле­ду­ю­щая стро­ка создаст сер­ти­фи­кат со сро­ком дей­ствия в 365 дней.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Итак, дан­ная коман­да созда­ет SSL­-сер­ти­фи­кат и закры­тый ключ, кото­рый защи­ща­ет его, а затем раз­ме­ща­ет эти фай­лы в новом каталоге.

Кро­ме того, эта коман­да выве­дет в тер­ми­нал спис­кок полей, кото­рые долж­ны быть заполнены.

Наи­бо­лее важ­ным из них явля­ет­ся поле «Common Name». В нем нуж­но ука­зать офи­ци­аль­ное домен­ное имя (или IP-адрес сай­та, если тако­го име­ни еще нет).

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]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:webmaster@awesomeinc.com

4: Настройка сертификата

Теперь все необ­хо­ди­мые ком­по­нен­ты сер­ти­фи­ка­та гото­вы. Сле­ду­ю­щее, что нуж­но сде­лать, — это настро­ить вир­ту­аль­ные хосты для отоб­ра­же­ния ново­го сертификата.

Открой­те файл ssl.conf:

vi /etc/httpd/conf.d/ssl.conf

Най­ди­те раз­дел, кото­рый начи­на­ет­ся с <VirtualHost _default_:443> и отре­дак­ти­руй­те его, как опи­са­но ниже.

Рас­ком­мен­ти­руй­те стро­ки DocumentRoot и ServerName, заме­ни­те example.com офи­ци­аль­ным домен­ным име­нем или IP-адре­сом сер­ве­ра (то, что было ука­за­но в поле Common Name в раз­де­ле 3):

ServerName example.com:443

Най­ди­те сле­ду­ю­щие три стро­ки и убе­ди­тесь, что они име­ют пра­виль­ные расширения:

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Гото­во! Теперь вир­ту­аль­ный хост Apache настро­ен долж­ным обра­зом. Сохра­ни­те все вне­сен­ные изме­не­ния и закрой­те файл.

 

Так же необ­хо­ди­мо добавить:

NameVirtualHost *:443
в вир­ту­ал­хост домена,
данные:
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
так же мож­но доба­вить в вир­ту­ал­хост домена

5: Перезапуск Apache

На дан­ном эта­пе сер­ти­фи­кат пол­но­стью готов к рабо­те. Оста­лось толь­ко пере­за­пу­стить Apache, что­бы акти­ви­ро­вать вне­сен­ные изменения.

/etc/init.d/httpd restart

Что­бы уви­деть новый сер­ти­фи­кат, вве­ди­те в бра­у­зе­ре https://адрес_сервера; это выве­дет на экран новый сертификат

Гото­во!

 

что бы сайт был досту­пен как по http так и по https нуж­но в вирт­хост добавить: