Конфигуриране на SSL сертификат и добавянето му на VPS/Dedicated servers - част I
В този пост ще Ви запозная как да генерирате на Вашия сървър домейн ключ, след което нужния CSR(Certificate Signing Request). Който CSR трябва да предоставите на доставчика на SSL сертификата, за да може да Ви издаде сертфикат по Вашия csr.
В част първа на поста ще Ви запозная с генерирането и конфигурирането под CentOS, а във втора част под Debian.
Нужно е първо да проверим дали разполагаме с openssl и ssl модул на уеб сървър:
*[root@/]# rpm -qa | grep ssl openssl-0.9.8e-12.el5_5.7 mod_ssl-2.2.3-45.el5.centos.1*
Забелязах с тази проверка, че разполагаме с openssl, както и с mod_ssl за уеб сървър httpd. Ако те не бяха налични е нужно да ги инсталираме. Това можем да направим със следната команда:
*[root@/]# yum install openssl.x86_64 mod_ssl.x86_64*
След като сме направили проверка създаваме една директория с име ssl в която ще генерираме домейн ключа, CSR-a и след това ще копираме сертификата и CA bundle-a:
*[root@/]# mkdir /etc/httpd/ssl [root@/]# cd /etc/httpd/ssl*
Вече сме създали успешно директорията и се намираме в нея. Сега първо е нужно да генерираме домейн ключа, след което да генерираме CSR-a. И за двете операционни системи създаването на ключ и csr е идентично:
*[root@ /]# openssl genrsa -out domain.com.pem 2048
Generating RSA private key, 2048 bit long modulus
.............+++
.......................................................................................+++
e is 65537 (0x10001)
[root@ /]# openssl req -new -key domain.com.pem -out domain.com.csr
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) [GB]:BG
State or Province Name (full name) [Berkshire]:Sofia
Locality Name (eg, city) [Newbury]:Sofia
Organization Name (eg, company) [My Company Ltd]:ICN.Bg
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []: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 []:*
Не е нужно да въвеждате challenge password, най-важно е да въведете "Common Name" където подавате с какъв hostname да бъде генериран сертификата дали той да бъде www.domain.com или domain.com. Ако не въведете това правилно сертификатът няма да работи коректно.
Вече сме генерирали ключа, както и csr-a. Сега ни е нужно да закупим валиден SSL сертификат. След като сте закупили сертификатът е нужно да предоставите на доставчика Ви csr-а за да може да Ви генерира самия сертификат. След като той Ви е предоставил сертификата и ca-bandle е нужно да ги поставите в директория ssl.
Добавяме сертификата с текстов редактор:
*[root@ ssl]# pico domain.com.crt
-----BEGIN CERTIFICATE-----
MIIHjDCCBnSgAwIBAgIDA0CqMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ
TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3Mg
MSBQcmltYXJ5IEludGVybWVkaWF0ZSBTZXJ2ZXIgQ0EwHhcNMTEwNDAyMTMxODU3
WhcNMTIwNDAyMTUzMjExWjCBtjEgMB4GA1UEDRMXMzk1MTgyLWh0UzA4RWZaNDI0
dTQxMVcxCzAJBgNVBAYTAkJHMR4wHAYDVQQKExVQZXJzb25hIE5vdCBWYWxpZGF0
ZWQxKTAnBgNVBAsTIFN0YXJ0Q29tIEZyZWUgQ2VydGlmaWNhdGUgTWVtYmVyMRYw
FAYDVQQDEw13d3cuZmlrb3YuY29tMSIwIAYJKoZIhvcNAQkBFhN3ZWJtYXN0ZXJA
Zmlrb3YuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvu2G1vLb
GWMIwrMTACepTshGliZZ6MWDD05jhpmlVPJ+ocQ7CppC3PBfk/lGEftCjXEhVOSV
S1dgpflEe/iYTTxjduXx9ALvcaJeaP4C8y5efyZXKC2mdwkCSqOvx1mvkYIv0xC3
u4mR/Yhb56qBGPiIQeeSEbIVyCP4LB1NJcW2mEe6QvYJeS35mA9tNc9Bn0tQAhPX
FwzppvQPeg+Zh+C4+sPMKb+DfbbDKA87JxsDXJ67wMdpsinRDLj5YatWXvIQusOF
ehNXApjvenAEyknj02DG1M9LlK+2mqN7JB49Zte0VAW+jXl78kpSy//60XOTFZkU
1IDH0mrM9LyXCdS1ibCyBMC+Ml5q8ibdq5Z5u2kaZQywrduIZRceinaICBtRFHHx
w0oxq4yOrGYApuJFFChOf4ppyTHIqkrWKK2g72nOrCN/YxAy+8cNZg0lcIlxo/Cp
/ZJv69+BcAAl1vzXozWx097njCkaDiNlmGSyndL47EqeufTE9jh7E4gSgWsHeMdE
x3H1n2UCjTd5FcRWiQYjB0VcwvfPDEczKtAsFcnL0T9G/KC1nh8D+dZbgcKQBC/D
cezUR3ypak3oQ1hJIyxX35ZskbCDQe/Q1LW66D+ZDBC2F4WloY16rPH1jNPewZrf
zmYKs4cv0DCl+O21dIa+YRl7NFOkUWTVOrcCAwEAAaOCAskwggLFMAkGA1UdEwQC
MAAwCwYDVR0PBAQDAgOoMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB0GA1UdDgQWBBTQ
TJZVX80Yebhlkz4Z8sBVxI/InDAfBgNVHSMEGDAWgBTrQjTQmLCrn/Qbawj3zGQu
7w4sRTAjBgNVHREEHDAagg13d3cuZmlrb3YuY29tgglmaWtvdi5jb20wggFCBgNV
HSAEggE5MIIBNTCCATEGCysGAQQBgbU3AQICMIIBIDAuBggrBgEFBQcCARYiaHR0
cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA0BggrBgEFBQcCARYoaHR0
cDovL3d3dy5zdGFydHNzbC5jb20vaW50ZXJtZWRpYXRlLnBkZjCBtwYIKwYBBQUH
AgIwgaowFBYNU3RhcnRDb20gTHRkLjADAgEBGoGRTGltaXRlZCBMaWFiaWxpdHks
IHNlZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29t
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0
cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA1BgNVHR8ELjAsMCqgKKAm
hiRodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9jcnQxLWNybC5jcmwwgY4GCCsGAQUF
BwEBBIGBMH8wOQYIKwYBBQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9z
dWIvY2xhc3MxL3NlcnZlci9jYTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFy
dHNzbC5jb20vY2VydHMvc3ViLmNsYXNzMS5zZXJ2ZXIuY2EuY3J0MCMGA1UdEgQc
MBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQUFAAOCAQEA
ZBmk5S1AzwmOMkQH1cPota1/YC2uNBQCUQQCh5wP0+hmFTkr8Acq8qN8M0wUkONf
lFeghsMulk9+XSK5x0IDLlNtABSAVJpLwietL8KdFcbujmMbsNoWDM2cZhS56NBB
jg4a46OIm+t3Wdf5A02uHpCa3JTM8393DbX2ts43hYHn0zpp1a/v4RqSMHU8u4Du
gKaUs+/Wo+2wQ7gQVj9hecoivtkvr6OEy+RzQr+Lf1dJ/v2bZKkjHnDWb8t1ZoXT
3Vkb5i8IpRHllHLboAEZMzmQ3q4F+yqPkD/1izs/Adu5wkwoC8yy2gLpi3wUX2Zg
Q4Z9hYzAqNmC0jutbwvaLA==
-----END CERTIFICATE-----*
Добавяме cabandle с текстов редактор:
*[root@ ssl]# pico domain.com.cabundle
-----BEGIN CERTIFICATE-----
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
-----END CERTIFICATE-----*
След като сме добавили сертификата и ca-bandle е нужно да създадем виртуалния хост в уеб сървър като опишем порта, на който да слуша и пътя до ключа, сертификата и ca-bandle.
Промянаме следните два реда в конфигурационния файл /etc/httpd/conf.d/ssl.conf:
*SSLRandomSeed startup builtin
SSLRandomSeed connect builtin*
След което в секцията "SSL Virtual Host Context" описваме виртуалния хост, като подаваме или редактираме следните редове:
*Listen 192.168.1.101:443 --- като 192.168.1.101 е IP, на което рабти уеб сървъра Ви
DocumentRoot "/var/www/html"
ServerName domain.com:443
ErrorLog logs/ssl_error_log
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/domain.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/domain.com.pem
SSLCACertificateFile /etc/httpd/ssl/domain.com.cabundle*
След тези настройки трябва само да рестартираме уеб сървъра и вече сме защитени със SSL сертификат. Можете да продължите от към втора част, в която ще Ви подам информация как да добавите и конфигурирате сертификат под Debian.