установка_ssl_сертификатов_для_веб-публикации

Установка SSL сертификатов для веб-публикации

1. Запрашиваем в УЦ сертификаты для веб-сервера. Хорошо подойдёт одноименный шаблон в Windows CA.

В шаблоне должен быть экспортируемый закрытый ключ, чтобы мы могли выгрузить сертификат и импортировать его в Apache. В запрос сертификата в subject alternative names нужно включить все имена, по которым собираемся обращаться к веб-серверу 1С.

2. Экспортируем полученный сертификат в base64 кодировке, в файле pfx. Также полезно эскпортировать две цепочки сертификатов: одну полную, которая включает сертификат сервера и сертификаты всех УЦ, включая корневой, а также цепочку сертификатов для удостоверяющих центров - к примеру, издающий + корневой (тоже в base64).

:!: Цепочка формируется простым копированием текста сертификата. При этом, сначала идет сертификат самого сервера, затем сертификат промежуточного центра, затем сертификат корневого.

Пример цепочки из трёх сертификатов - сервера, промежуточного УЦ, корневого УЦ

-----BEGIN CERTIFICATE-----
MMMHBDCCBOygAwIBAgITYQAAAFF0DWQQF5bVtwAAAAAAUTANBgkqhkiG9w0BAQsF
ADBqMQswCQYDVQQGEwJSVTEVMBMGA1UEChMMSW5ub3NldGkgTExDMQ8wDQYDVQQL
EwZEZXZPcHMxMzAxBgNVBAMTKklubm9zZXRpIElzc3VpbmcgQ2VydGlmaWNhdGlv
biBhdXRob3JpdHkgMTAeFw0yMzAzMzEwOTAzMzVaFw0yODAzMjkwOTAzMzVaMFgx
CzAJBgNVBAYTAlJVMRQwEgYDVQQIEwtLYWxpbmluZ3JhZDERMA8GA1UEChMISW5u
b3NldGkxDzANBgNVBAsTBkRldk9wczEPMA0GA1UEAxMGMWMtc3J2MIICIjANBgkq
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Ja0vdRAruH2uK9JvOXPb6K1Dqe9JMxJ
th6spKItWQau4Bwq88SIoXLXWGoYcduXuVSIAuN1X42DQ+TmEnujNM3jnNXolrU1
/QRhwgt6FyTXApKNbJBQT0uGeLbT0ypH97hK4ja1p/AmOjoU/2mL5XBo6IP90GpF
qi2AiPBPDJBSic8IQ56mhpkTnpIyidkqlGALOal1HWe57Dmb/X6hMUkBZ/Gi/x5m
Ld3wTgmGVOaf/sMsoocEdlRVuf7a3/smP6aqsM8bPQcrTA2QDJtD8268Jsz/RxvE
+re+uHYThaaVhlh3XfR0ZeVYiwoZOhW3FkbfEGL0EqKw3Jp6HFjKdP6Ef7wBgDld
WvoSWxQVTkMQyLUoiLISKw2GIUqRLCk6au5Xe89HoJWgJXayg8IkwYXosQSjcHpC
6G389gmOS+DlSHoBEWJ081CKXUvFzynEN8BzXXX5mS7XcaQMVEq1blhbj0xehVT6
jAPYKVmL6HFFq7dlCKqEDQmWpWxpV2Ps1SK/+yjLFylNQ1UaXRx25q9Zf5qi4zSH
W7IRlsN98zXVOR8npVpxhj5eittJHpL4Xmc0KGu/eP0P6xcDhgmJLw9OHNOG3AIO
zmK3YuoyaOlqnwXqqvofjbq6IUHfR8CiOHOq/+nM5rQnHkyeBxMVmgHpzYxslNvt
Tb7sKcqtQvECAwEAAaOCAbMwggGvMDsGCSsGAQQBgjcVBwQuMCwGJCsGAQQBgjcV
CIS57Fn78AbtmzaBproxhfeoFIE1hOfEE62JNAIBZAIBBjATBgNVHSUEDDAKBggr
BgEFBQcDATAOBgNVHQ8BAf8EBAMCBaAwGwYJKwYBBAGCNxUKBA4wDDAKBggrBgEF
BQcDATAdBgNVHQ4EFgQUlzeJnGw91uUcpLxSRTLClDhHucYwVwYDVR0RBFAwToIG
MWMtc3J2ghgxYy1zcnYuaW5mcmEuaW5ub3NldGkucnWCHTFjLXNydi10ZXN0Lmlu
ZnJhLmlubm9zZXRpLnJ1ggsxYy1zcnYtdGVzdDAfBgNVHSMEGDAWgBRD2eqA7zmn
87ktOtwKduguCytXADBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vY2RwLm9mZmlj
ZS5pbm5vc2V0aS5ydS9wa2kvaW5ub3NldGktcGljYS5jcmwwTwYIKwYBBQUHAQEE
QzBBMD8GCCsGAQUFBzAChjNodHRwOi8vY2RwLm9mZmljZS5pbm5vc2V0aS5ydS9w
a2kvaW5ub3NldGktcGljYS5jcnQwDQYJKoZIhvcNAQELBQADggIBABIn5MX+zE4E
4ZhD8Cr9E0hRVjcWa5HSEC3B+pv5Rbv853PIwxb3fAqpLyfVTfz/H5fwtQiCkAdH
bRRAoXRokLdfu6LbPNPwQroTErTRyLj17/fVTKhk5Cqa/aoaQq3+ywFLEa7bun2O
xM4KRxBsaBOHXZUkCTbr5fPzgzMVETxAXWUmaZpZjpXvgzI4cY5KI1JQlsFE5k/A
OVJoHlXR1z29GhJFknFBOytzPIGTw8GNZBkqtemDDuxDmufB7cuh515i/R3cRxa4
JBb9JzXxjwBwRk+7Gtg5EWHlT8izS8l9FEKLyxyQNww7GLaMP8CLOzKGoOIqxs6X
UM6+XhwiQms/AFxIYi0WHnAaeOPk4JR7KUSHH8bhSne8PImuNG3sO1EEmC5+dY1T
NlXj9IOWkU/nd7epakVgei49wtcmM19TFwhGfLTEi8UetTwJFh05/fZqgWxlLHLF
wNcCNvbkx6uCQS4jKB1W1fuWVDeK1vTlRNQdCXjwcmdnNww3THhWlg/mBSlhfXxV
D5o5lZzRBkcUaF8PipCY0mJDeiFJbjSztWx42+7IbmnL/YzkHUEALul5lg42prxb
1AeCk8SkZnyMxA1eJ+GQ5Ow/4eiV8CFVEdV3EMvQfHPmIM1mFfNmoxFiduh4VnZ0
IhBpbZBEc9Qee35L/6SumjIkIfIFtgLr
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIGgjCCBGqgAwIBAgITeAAAAAJOVWse4UyHoAAAAAAAAjANBgkqhkiG9w0BAQsF
ADBlMQswCQYDVQQGEwJSVTEVMBMGA1UEChMMSW5ub3NldGkgTExDMQ8wDQYDVQQL
EwZEZXZPcHMxLjAsBgNVBAMTJUlubm9zZXRpIFJvb3QgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkwHhcNMjMwMzE1MTIzOTQ2WhcNMzgwMzE1MDk1NTIzWjBqMQswCQYD
VQQGEwJSVTEVMBMGA1UEChMMSW5ub3NldGkgTExDMQ8wDQYDVQQLEwZEZXZPcHMx
MzAxBgNVBAMTKklubm9zZXRpIElzc3VpbmcgQ2VydGlmaWNhdGlvbiBhdXRob3Jp
dHkgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKzfOwIkyxwoDN8K
0lq6P87vhHyLHCDIncMLFH6TCbxR3t4VeXfBNZsBItDF5+s6h3RzLMOYIZ3SCh11
1PQStBFfDp8nmg7oZe1Bw75yKn4nQwGm4CHRmek8hAGqHn0dhDlklYQ73e05O0kH
UMmr/8C4UkWTQ8ymySsdnRqLAXq/GaK5zQk5vRu9f5QHn7Aq/jYS4we+cztdl3Qd
OccyS4er567rb/7v8jB2+qaJcwjvJFINJsFP/VwsG74qFF6sHvOPhvoEBwTQ2ect
jAbeETRaRvGkYIzDfIwn+zUER//oT3HM3RzFlqPtfsA1g2NRX9AiI1s70lg+i1ci
kvtaB6Z2pCYxmoJWbOrxucnzHVMU2lzj4gMpKcYY27qEp8+yuEfwJJB1g1lzOTu4
bqOkDkpp9vg8hMOZbxJwIDDSa3A7VDsIfeJndTlrl4cdkUqDJkONDqVUtEN8FU4B
YwEbLPOSRzWKjn0HQxG1vvEBi0YlV2/2Bb7stcoWb+kgcKkRRNTwhuxyzB0wIkjx
+7fnNm6QkeFm6XAfOyLz9Go05iDTVZ8yhyYIsrswHBy0P4pAyUDXs4FNPUt0PNWf
T56ooAMO1Qz1eYOx6LXJWyvR7lst350n111t6VegTqSfi8SqlQBEHE9d7c41RaZ4
XX01FIVJpZ/1wjvs1r8qhObOIaOhAgMBAAGjggEkMIIBIDAQBgkrBgEEAYI3FQEE
AwIBADAdBgNVHQ4EFgQUQ9nqgO85p/O5LTrcCnboLgsrVwAwGQYJKwYBBAGCNxQC
BAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYD
VR0jBBgwFoAUtnvZHUo0TH1tvWBMl/ILVgWYMBUwQwYDVR0fBDwwOjA4oDagNIYy
aHR0cDovL2NkcC5vZmZpY2UuaW5ub3NldGkucnUvcGtpL2lubm9yb290LXJjYS5j
cmwwTgYIKwYBBQUHAQEEQjBAMD4GCCsGAQUFBzAChjJodHRwOi8vY2RwLm9mZmlj
ZS5pbm5vc2V0aS5ydS9wa2kvaW5ub3Jvb3QtcmNhLmNydDANBgkqhkiG9w0BAQsF
AAOCAgEAVcETH5dNHFuBEhKf4yJuDOna+y0IzOulzlKooCt7gR04du0MgfCKNvas
loxzUxV3gHaJxd0XtNrueV1R+BnIB2XcZQ7hVDbPW4f+jNoOj/plFiAcUAjGXs/p
9rixqLVRHgUp53B4id+XFGIWgOYzPvBvKtd1azxN1gvdeWUU0b+re1f0O6465afl
19U1DNVneBYwPMdkws2gTJYqXbwrj1s7c6Uxgytcjw4h5RiDQHb8lShT94W8n9Y5
yrfmDBu1enCRd2hDAYxWvPIe9Oug9e03NalRCuCwgnHwhxphs9M6hWRkG5GBkfFZ
rQ8cVzUF0ReOEJm7rQsH3LLqe4qPl4EXRxSCtRic9VhRrAG60ao6Te3ymjonPplF
7w/VmTY0C/QRRMMaIBQPzSaL7dNCBeadBJm5o7PmMOMMPfTiiM2LOknj8z0d3ZME
T28u3TwP7/P/fqE2OEqtvYuSWjG8peUnHDii5rRF/mwh5oTUB7cTGQh92/ugQhTG
oe5p9h8s0a+xOL3LPwWZIfDYzEt5YW6fOuK6WWkjWYGKFsFUnhxapzJEyA6F1PN7
TUVZLygnItg7/jZLmgsZZnX5xt+EhWBbBsDuArPs/z44ln59/HWhTYvn0Y/uoFsN
0+pnmzRktKqh0NpcbWfWLvP9aHTkb7SYqiUQ19r+bodmTs9FUZw=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIFpTCCA42gAwIBAgIQLgLa0xqMxqlBQG1W89FJAjANBgkqhkiG9w0BAQsFADBl
MQswCQYDVQQGEwJSVTEVMBMGA1UEChMMSW5ub3NldGkgTExDMQ8wDQYDVQQLEwZE
ZXZPcHMxLjAsBgNVBAMTJUlubm9zZXRpIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRo
b3JpdHkwHhcNMjMwMzE1MDk0NTghXhcNMzgwMzE1MDk1NTIzWjBlMQswCQYDVQQG
EwJSVTEVMBMGA1UEChMMSW5ub3NldGkgTExDMQ8wDQYDVQQLEwZEZXZPcHMxLjAs
BgNVBAMTJUlubm9zZXRpIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDSIXXu1D7ZNmc+zYGujM76pWp
iRgclEgUsOAiy+Vg4QjAAExnRUG03gr2CjCvQ1y8e3aQX81jKwY/xgza2sl7NniL
6ZLfYESbSxD7SPErHZ3zH5dw8fmNoxh4nAwwowdsxGjqLxqm1KTUG319KE3GBtRS
aB2C0WwIZCc+MxKy2bN8RXpgjnMZgDTVcu6U62VJkXRrCHf2I2oKqJacZ98edfEm
FYG0cTCg4j7L8ypPReot98oAyLdS7bQqMaqKg2mZCi2OgJ3ws8rMFfqf1ZCGo8PP
IJw7y7t8nnKCvQSIAdAshO4/ZpSc5LDbVkeJFsej1cREW1ZiBBCjt/bWKMQ+aV+V
+Ubsz/OypNbmRBNZEM8ZwHsYHQRFP0ZTX34RDH4SRm+TGnZCcmUYEEY7zZQSXlxl
1yNrIqHsmb8/2yNtOOo2CLw62KpaCtCkqZOeGhs1cFfDBJU/EHxhsko4NAQdAleW
WW0Rem+RYIE1xIJent11111ckrytHRsIkxmG6IrC3eERtiuLnfcn5dflfYYTZVWT
zgvKEcso3mYFUvDbFkgXLKxg1WY24I/v6GIs9mtzZ1HK0fHoStlejG2qIebQWK+K
0nT8SWbnfYBi9tQkXlUEwqfmcHwdMFpbkdTbLWSHLme0ZEi8wMS4csx2i0A6qp4f
gdMEHPczycGdDNw9cQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUtnvZHUo0TH1tvWBMl/ILVgWYMBUwEAYJKwYBBAGCNxUB
BAMCAQAwDQYJKoZIhvcNAQELBQADggIBAI6H6DVa4qb1OBMas6MVRKQuyH2C2qDp
HMs+89JYvnTgZzmr4ax4KfYFey4aioOQ2ycCrly1ggvtTF4O5nLnTwlWdJNAEEZF
Ypu23R6ui83u7n9ebzTkco5o5GxOBuuARpyX5poH75ZWxQ4X7ed+9gkfn2ydO7ec
jp/yywzATNeeTwPyfCrr2EWwwD598OqA6vGtTY6jl0eamZDnNr94XNOY5JJLKouM
qVcWkQjIjzIDPqvxakGPVwJwzRW4DorauGVcKBksq0wpIk7DkPqqoNrotDuFPZe1
UVCzpxtxBbK6/7LukZQ9ceH3rJgKejuVY0RMXXvjLx5fyiGJKGSj7voV4JVpdrie
mJnCYa4yXWm7f59pkn0FpIc8ga73HSLeq/7feQIBWhV16eL+PCmttJb307mCaKMg
F762Ek9HGTJqB/sDFb8cIn2xOuFvpMuEbu3q1ptjG0t44DIQL42jxVBgStH8//tu
2YkEk8jll8k/ttAtnHY7FEp1zpu7HQeaywYeJtI93bu8iyKJZUw0vh+Pojix5rc1
o8tYv1nbfFS1IgRaPULV8uVS7DkauuOZFSc7W2j3ElivYJcu6LNqYVFdVYtK6lsu
3KrqUMFFYDp7NLnKqz+zLWPQZzMElIrdyhzybZGiwgERHEVz7Kqx+z1n5cztCXIu
xSEopwMqaN6r
-----END CERTIFICATE-----

3. Копируем сертификаты на сервер, где установлен Apache и 1С.

4. Получаем два разных файла для сертификата сервера - открытый и закрытый ключ из загруженного pfx. Как это сделать - описано в разделе OpenSSL.

5. Все сертификаты с открытым ключем (сертификат сервера, цепочку, а также полную цепочку) - копируем в папку certs

 /etc/ssl/certs/1c-srv.cer
 /etc/ssl/certs/ourchain-1c-srv.cer
 /etc/ssl/certs/ourchain.cer

Закрытый ключ сертификата сервера копируем в папку private

 /etc/ssl/private/server.key

6. Если на нашем сервере Apache обслуживает только 1С, то нам просто нужно отредактировать файл с сайтом по умолчанию

 /etc/apache2/sites-enabled/000-default.conf

Добавим в него блок virtualhost для всех подключений по https

<VirtualHost *:443>
   ServerAdmin webmaster@example.com
   DocumentRoot /var/www/html
   ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
   CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined

   SSLEngine on
   SSLCertificateFile /etc/ssl/certs/1c-srv.cer
   SSLCertificateChainFile /etc/ssl/certs/ourchain-1c-srv.cer
   SSLCertificateKeyFile /etc/ssl/private/1c-srv.key
   SSLCACertificateFile /etc/ssl/certs/ourchain.cer

   Protocols h2 http/1.1
</VirtualHost>

В данном конфиге 1c-srv.cer - это файл сертификата нашего сервера, ourchain-1c-srv.cer - это полная цепочка, включающая сертификат сервера, 1c-srv.key - приватный ключ, ourchain.cer - цепочка сертификатов УЦ.

7. Перезапускаем Apache

 apachectl restart

8. Если получаем ошибку о том, что директива SSLEngine on непонятна серверу - включаем модуль SSL и перезапускаем Apache снова

 sudo a2enmod ssl

9. Проверяем доступность публикации по https.


Делаем редирект с http на https в Apache

Добавляем правила рерайта в файл

 /etc/apache2/sites-available/000-default.conf
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

Перезапускаем Apache

 systemctl restart apache2

Если при перезагрузке Apache получаем сообщение об ошибке - скорее всего у нас не установлен mod rewrite.

Установим его и перезапустим Apache снова

 sudo a2enmod rewrite
установка_ssl_сертификатов_для_веб-публикации.txt · Last modified: 2023/04/07 08:48 by jp