Инсталиране на 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