Инсталиране на SSL сертификат на Debian

Помощен център

Инсталиране на SSL сертификат на Debian

В началото е нужно да проверим дали е инсталиран следния пакет openssl и да инсталираме ssl модула за apache:

root@~# dpkg --list | grep openssl ii openssl 0.9.8o-4squeeze1\
root@debain-icn:~# a2enmod ssl
Enabling module ssl. Run '/etc/init.d/apache2 restart' to activate new configuration!

Генериране на private key и CSR

След проверката и инсталацията на ssl модула създаваме директория /ssl/ в директорията на уеб сървъра /etc/apache2/. В тази директория ще генерираме частния ключ (private key) както и csr ключа:

[root@/]# mkdir /etc/apache2/ssl
[root@/]# cd /etc/apache2/ssl

Създадохме директория /ssl/ и сме вътре в нея, време е да генерираме частния ключ и csr

root@:/etc/apache2/ssl# openssl genrsa -out www.domain.com.pem 2048

Generating RSA private key, 2048 bit long modulus .........................+++ ......+++ e is 65537 (0x10001)
root@:/etc/apache2/ssl# openssl req -new -key www.domain.com.pem -out www.domain.com.csr
Country Name (2 letter code) [AU]:BG
State or Province Name (full name) [Some-State]:Sofia
Locality Name (eg, city) []:Sofia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ICN.Bg
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:www.domain.com
Email Address []:admin@domain.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

Oбърнете внимание на Common Name -  много е важно host името (домейна) да бъде изписано правилно. Може да не попълвате последните две полета challenge password и optional company name - просто натиснете клавиша Enter за да продължите.

Закупуване на SSL сертификат

Разполагаме с частния ключ и csr и можем вече да закупим своя сертификат от оторизирана CA компания или лицензиран посредник като следваме процедурата по въвеждане на определени данни и въвеждане на csr в определен формуляр.

След заплащане от наша страна и подписване на сертификата от CA получаваме архив с файловете на SSL сертификата, който съдържа самия сертификат и ca-bundle файл.

CA-bundle е файл, който съдържа основния (root) и междинни (intermediate) сертификати, които заедно формират т.нар. certificates’ chain (верига от сертификати).

Веригата от сертификати е необходима за подобряване на съвместимостта на сертификатите с уеб браузъри и други клиенти, така че браузърите да разпознават вашия сертификат и да не генерират предупреждения относно сигурността.

Инсталиране на сертификата

Вече разполагаме със сертификата и ca-bundle и трябва да ги копираме на сървъра.

Добавяме сертификата като създаваме нов файл на сървъра с текстов редактор и поставяме в него (copy/paste) съдържанието на съответния файл от имейла:

root@:/etc/apache2/ssl# pico www.domain.com.crt

-----BEGIN CERTIFICATE-----
MIIHjDCCBnSgAwIBAgIDA0CqMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
-----END CERTIFICATE-----

По същия начин добавяме и ca-bundle:

root@:/etc/apache2/ssl# pico www.domain.com.cabundle

-----BEGIN CERTIFICATE-----
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg 
NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
-----END CERTIFICATE-----

Създаване на виртуален хост

Сега е нужно да проверим в настройките на уеб сървъра (в Debian - apache2) дали SSL порт 443 е отворен (реда Listen 443 не трябва да е коментиран):

root@:/etc/apache2/ssl# pico /etc/apache2/ports.conf

# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP. Listen 443 
Listen 443

До този момент сме създали директория /etc/apache2/ssl/, която съдържа трите файла - частния ключ, сертификата и cabundle.

Сега трябва да конфигурираме виртуалния хост в директория:

/etc/apache2/sites-available

Името на файла трябва да е:

domain.com-ssl 

root@:/etc/apache2/ssl# pico /etc/apache2/sites-available/domain.com-ssl


ServerAdmin webmaster@domain.com
DocumentRoot /var/www
ServerName domain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/apache2/ssl/domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/domain.com.pem
SSLCACertificateFile /etc/apache2/ssl/domain.com.cabundle
SSLEngine on

където 192.168.1.101 е IP адреса на вашия сървър.

След това изпълняваме следната команда:

a2ensite domain.com-ssl

в която трябва да заменим domain.com с домейн името на реалния сертификат. Тази команда създава symlink от sites-available към sites-enabled.

Тест на сертификата

След като сме добавили виртуалния хост, в който сме описали пътищата до файловете на SSL сертификата, ключа и cabundle е нужно само да рестартираме уеб сървъра, за да приеме новите настройки и да заредим сайта в https протокол:

https://domain.com