Оглавление:
SSL: Comodo – получение и установка подписанного SSL-сертификата, CA Root сертификата и SSL-chain
Rate this (2 Votes) |
Процедура заказа и установки платного (коммерческого) сертификата – практически та же самая, не считая деталей при оформлении заказа.
Создание Private Key сервера и .CSR – запроса на получение сертификата
Для начала – создаём сертификат, который мы будем использовать в нашем приложении:
01 | # keytool -genkey -keysize 2048 -keyalg RSA -alias 0 , -keystore /home/setevoy/.ssh/akiraCom.jks |
02 | Enter keystore password: |
03 | Re-enter new password: |
04 | What is your first and last name? |
05 | [Unknown]: akira.setevoy.kiev.ua |
06 | What is the name of your organizational unit? |
07 | [Unknown]: |
08 | What is the name of your organization? |
09 | [Unknown]: |
10 | What is the name of your City or Locality? |
11 | [Unknown]: Kiev |
12 | What is the name of your State or Province? |
13 | [Unknown]: |
14 | What is the two-letter country code for this unit? |
15 | [Unknown]: UA |
16 | Is CN=akira.setevoy.kiev.ua, OU=Unknown, O=Unknown, L=Kiev, ST=Unknown, C=UA correct? |
17 | [no]: yes |
18 |
19 | Enter key password for <akiraCom> |
20 | (RETURN if same as keystore password): |
Если после заполнения получаете подобную ошибку – попробуйте отписаться в support Comodo – вопрос решили в течении пары часов:
> An account already exists for “kiev.ua”
Потребуется регистрация – но она простая.
Продолжим. Сейчас нам необходимо создать .csr-файл – Запрос на получение сертификата (Certificate signing request). По сути он просто содержит в себе ту информацию, которую вы указали во время генерации сертификата (Private Key) сервера.
1 | # keytool -certreq -alias akiraCom -file /home/setevoy/.ssh/akiraCom.csr -keystore /home/setevoy/.ssh/akiraCom.jks |
2 | Enter keystore password: |
1 | # ls -l | grep akiraCom |
2 | -rw-r—r— 1 root setevoy 1023 Jan 23 14:12 akiraCom.csr |
3 | -rw-r—r— 1 root setevoy 2222 Jan 23 14:11 akiraCom.jks |
1 | # cat akiraCom.csr |
2 | ——BEGIN NEW CERTIFICATE REQUEST—— |
3 | MIICtzCCAZ8CAQAwcjELMAkGA1UEBhMCVUExEDAOBgNVBAgTB1Vua25vd24xDTALBgNVBAcTBEtp |
4 | … |
5 | HA8oFRfKN/pZXPLpvTJKwcgI7eD/HTXEcEidFQZ6G044OKbyZ2Tr0ytxt1w3Cqq+3pbZTawROPmR |
6 | to8Rbw+AfgOE0xNQ4n4C |
7 | ——END NEW CERTIFICATE REQUEST—— |
Переходим на страницу оформления заказа на сертификат, кликаем на Большую Зелёную Кнопку Free Trial SSL, потом на такую же ещё раз – и попадаем на страницу оформления заказа.
Тут в поле 1. вставляем текст из нашего csr-файла:
Выбираем тип подтверждения владения доменом, в данном случае – через почту в этом домене:
Заполняем оставшиеся поля:
Соглашаемся – ставим галочку, и кликаем Большую Синюю Кнопку:
Открываем подсвеченное красным:
В почте находим письмо от Comodo с номером заказа:
В письме находим код:
Вводим его в поле на сайте, кликаем Next:
Всё, ждём. Сейчас письмо с сертификатами пришло буквально через 5 минут, в прошлый раз – только на следующий день.
Так выглядит само письмо:
Нам важно в нём следующее:
1 | Attached to this email, you should find a .zip file containing: |
2 | Root CA Certificate — AddTrustExternalCARoot.crt |
3 | Intermediate CA Certificate — UTNAddTrustSGCCA.crt |
4 | Intermediate CA Certificate — ComodoUTNSGCCA.crt |
5 | Intermediate CA Certificate — EssentialSSLCA_2.crt |
6 | Your Free SSL Certificate — akira_setevoy_kiev_ua.crt |
Это цепочка из Root, Intermediate и самого сертификата для сервера.
Установка Root, Intermediate и подписанного сертификата сервера
Распаковываем архив в удобное место:
1 | # unzip akira_setevoy_kiev_ua.zip |
2 | Archive: akira_setevoy_kiev_ua.zip |
3 | extracting: AddTrustExternalCARoot.crt |
4 | extracting: UTNAddTrustSGCCA.crt |
5 | extracting: ComodoUTNSGCCA.crt |
6 | extracting: EssentialSSLCA_2.crt |
7 | extracting: akira_setevoy_kiev_ua.crt |
1 | # ls -l |
2 | total 64 |
3 | -rwxr-xr-x 1 root setevoy 1521 May 30 2000 AddTrustExternalCARoot.crt |
4 | -rwxr-xr-x 1 root setevoy 1679 Dec 1 2006 ComodoUTNSGCCA.crt |
5 | -rwxr-xr-x 1 root setevoy 1797 Dec 1 2006 EssentialSSLCA_2.crt |
6 | -rwxr-xr-x 1 root setevoy 1671 Jun 7 2005 UTNAddTrustSGCCA.crt |
7 | -rwxr-xr-x 1 root setevoy 1846 Jan 23 00:00 akira_setevoy_kiev_ua.crt |
8 | -rw——- 1 root setevoy 9134 Jan 23 18:37 akira_setevoy_kiev_ua.zip |
Теперь – разберёмся, что из этих сертификатов – Root, какие – Intermediate, т.е. “промежуточные”.
С помощью утилиты keytool посмотрим информацию о сертификате:
1 | # keytool -printcert -file akira_setevoy_kiev_ua.crt | grep CN |
2 | Owner: CN=akira.setevoy.kiev.ua, OU=Free SSL, OU=Domain Control Validated |
3 | Issuer: CN=EssentialSSL CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB |
Owner – владелец, т.е. мы;
Issuer – “эмитент”, т.е. – поставщик данного сертифката.
Что бы сработал SSL Handshake – “рукопожатие”, запрос должен пройти цепочку (“chain“) от сертификата сервера – до Root-сертификата Центра Сертификации (
CA - Certificate authority
). Примеры выполнения SSL Handshake есть в статье SSL: установка и примеры использования утилиты ssldump.В некоторых случаях, как в этом примере – между нашим сертифкатом и сертификатом нашего CA есть Intermediate, промежуточные, CA, и их сертификаты должны быть установлены в то же хранилище.
Просмотреть эту цепочку можно по полям Owner/Issuer сертификата. В примере выше мы видим, что и эмитент – EssentialSSL CA, а владелец – akira.setevoy.kiev.ua.
Что такое CA Root chain
Далее – найдём сертификат владельца нашего сертификата (Issuer: CN=EssentialSSL CA):
1 | # keytool -printcert -file EssentialSSLCA_2.crt | grep CN |
2 | Owner: CN=EssentialSSL CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB |
3 | Issuer: CN=COMODO Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB |
Теперь – посмотрим сертификат для COMODO Certification Authority:
1 | # keytool -printcert -file ComodoUTNSGCCA.crt | grep CN |
2 | Owner: CN=COMODO Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB |
3 | Issuer: CN=UTN — DATACorp SGC, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US |
Следующее звено цепочки – сертификат UTN — DATACorp SGC:
1 | # keytool -printcert -file UTNAddTrustSGCCA.crt | grep CN |
2 | Owner: CN=UTN — DATACorp SGC, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US |
3 | Issuer: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE |
И последний сертификат в этой цепочке:
1 | # keytool -printcert -file AddTrustExternalCARoot.crt | grep CN |
2 | Owner: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE |
3 | Issuer: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE |
4 | [CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE] |
Тут и Owner и Issuer один и тот же, т.к. этот сертифкат являетс я “корневым” (Root).
Таким образом, цепочка выглядит так:
1 | CN=akira.setevoy.kiev.ua > CN=EssentialSSL CA > CN=COMODO Certification Authority > CN=UTN — DATACorp SGC > CN=AddTrust External CA Root. |
Теперь – установим наш сертификат, в тоже хранилище, в котором лежит наш Private Key, из которого мы создавали наш .CSR файл.
Посмотрим, что в нём есть сейчас:
01 | # keytool -list -keystore ../akiraCom.jks |
02 | Enter keystore password: |
03 |
04 | Keystore type: JKS |
05 | Keystore provider: SUN |
06 |
07 | Your keystore contains 1 entry |
08 |
09 | akiracom, Jan 23, 2014, PrivateKeyEntry, |
10 | Certificate fingerprint (MD5): 3E:69:6A:32:2F:14:EA:EE:94:74:FA:0F:18:6C:B0:F2 |
При попытке добавить свой сертификат “вне очереди” – будет сообщено об ошибке при проверки цепочки – “Failed to establish chain from reply“:
1 | # keytool -import -v -trustcacerts -alias akiraCom -file akira_setevoy_kiev_ua.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | keytool error: java.lang.Exception: Failed to establish chain from reply |
4 | java.lang.Exception: Failed to establish chain from reply |
Добавляем в хранилище CA Root сертификат:
1 | # keytool -import -v -trustcacerts -alias AddTrustExternalCARoot -file AddTrustExternalCARoot.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | Certificate already exists in system-wide CA keystore under alias <addtrustexternalca> |
4 | Do you still want to add it to your own keystore? [no]: yes |
5 | Certificate was added to keystore |
6 | [Storing ../akiraCom.jks] |
На вопрос "Certificate already exists in system-wide CA keystore under alias <addtrustexternalca>" – отвечаем Yes.
Проверим:
01 | # keytool -list -keystore ../akiraCom.jks |
02 | Enter keystore password: |
03 |
04 | Keystore type: JKS |
05 | Keystore provider: SUN |
06 |
07 | Your keystore contains 2 entries |
08 |
09 | akiracom, Jan 23, 2014, PrivateKeyEntry, |
10 | Certificate fingerprint (MD5): 3E:69:6A:32:2F:14:EA:EE:94:74:FA:0F:18:6C:B0:F2 |
11 | addtrustexternalcaroot, Jan 24, 2014, trustedCertEntry, |
12 | Certificate fingerprint (MD5): 1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F |
Добавляем второй сертификат:
1 | # keytool -import -v -trustcacerts -alias UTNAddTrustSGCCA -file UTNAddTrustSGCCA.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | Certificate was added to keystore |
4 | [Storing ../akiraCom.jks] |
Третий:
1 | # keytool -import -v -trustcacerts -alias ComodoUTNSGCCA -file ComodoUTNSGCCA.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | Certificate was added to keystore |
4 | [Storing ../akiraCom.jks] |
Четвёртый:
1 | # keytool -import -v -trustcacerts -alias EssentialSSLCA_2 -file EssentialSSLCA_2.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | Certificate was added to keystore |
4 | [Storing ../akiraCom.jks] |
И только теперь – свой. Обратите внимание – alias при добавлении должен быть тем же, которым “подписан” наш Private key, в данном случае – akiraCom:
1 | # keytool -import -v -trustcacerts -alias akiraCom -file akira_setevoy_kiev_ua.crt -keystore ../akiraCom.jks |
2 | Enter keystore password: |
3 | Certificate reply was installed in keystore |
4 | [Storing ../akiraCom.jks] |
Сообщение "Certificate reply was installed in keystore" говорит о том, что вся цепочка установлена нормально.
Осталось перенастроить сервер на использование этого хранилища, настройка описана в статье Tomcat: двухфакторная авторизация пользователей по SSL-сертификатам (за исключением обратной авторизации клиент>сервер ; сервер>клиент, само собой):
1 | keystoreFile="/home/setevoy/.ssh/akiraCom.jks" |
2 | keyAlias="akiraCom" |
1 | # service tomcat6 start |
2 | Starting tomcat60. |
Проверяем:
01 | # curl https://akira.setevoy.kiev.ua:8443/ | head |
02 | % Total % Received % Xferd Average Speed Time Time Time Current |
03 | Dload Upload Total Spent Left Speed |
04 | 0 0 0 0 0 0 0 0 —:—:— —:—:— —:—:— 0<!— |
05 | Licensed to the Apache Software Foundation (ASF) under one or more |
06 | contributor license agreements. See the NOTICE file distributed with |
07 | this work for additional information regarding copyright ownership. |
08 | The ASF licenses this file to You under the Apache License, Version 2.0 |
09 | (the "License"); you may not use this file except in compliance with |
10 | the License. You may obtain a copy of the License at |
11 |
13 |
14 | 100 7917 100 7917 0 0 77452 0 —:—:— —:—:— —:—:— 77617 |
И заходим на сайт браузером:
Готово.
Похожие посты
- 01/22/2014 SSL: конвертировать файл .JKS в .PEM
- 07/23/2015 Apache HTTP: настройка HTTPS и SSL
- 09/10/2015 NGINX: настройка SSL и HTTPS
https://rtfm.co.ua/ssl-comodo-poluchenie-i-ustanovka-podpisannogo-ssl-sertifikata-ca-root-sertifikata-i-ssl-chain/
Губарь Маргарита Александровна недавно публиковал (посмотреть все)
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021