Сертификаты Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:безопасность:certificates [2012/06/23 15:19]
[Установка сертификата]
wiki:руководство_по_ubuntu_server:безопасность:certificates [2014/10/28 21:32] (текущий)
[Создание запроса на подпись сертификата (CSR)]
Строка 52: Строка 52:
 Enter pass phrase for server.key: Enter pass phrase for server.key:
 </​code>​ </​code>​
-Теперь вы можете ввести вашу кодовую разу. Для лучшей безопасности рекомендуется использовать не менее восьми символов. Минимальная длина при использовании **-des3** - 4 символа. Фраза должна включать цифры и/или знаки препинания и не должно быть словом из словаря. Также не забывайте,​ что ваша фраза будет чувствительна к регистру.+Теперь вы можете ввести вашу кодовую ​фразу. Для лучшей безопасности рекомендуется использовать не менее восьми символов. Минимальная длина при использовании **-des3** - 4 символа. Фраза должна включать цифры и/или знаки препинания и не должно быть словом из словаря. Также не забывайте,​ что ваша фраза будет чувствительна к регистру.
  
 Повторите ввод для проверки. В случае корректного ввода ключ сервера будет создан и записан в файл **server.key**. Повторите ввод для проверки. В случае корректного ввода ключ сервера будет создан и записан в файл **server.key**.
  
-Теперь создадим небезопасный ключ, без кодовой фразы и перетасуем имена ключей:​+Теперь создадим небезопасный ключ, без кодовой фразы и поменяем имена ключей:​
 <​code>​ <​code>​
 openssl rsa -in server.key -out server.key.insecure openssl rsa -in server.key -out server.key.insecure
Строка 62: Строка 62:
 mv server.key.insecure server.key mv server.key.insecure server.key
 </​code>​ </​code>​
-Небезопасный ключ теперь называется server.key и вы можете использовать его для создания CSR без кодовой фразы.+Небезопасный ключ теперь называется server.key и вы можете использовать его для создания ​**CSR** без кодовой фразы.
  
-Для создания CSR выполните следующую команду в терминале:​+Для создания ​**CSR** выполните следующую команду в терминале:​
 <​code>​openssl req -new -key server.key -out server.csr</​code>​ <​code>​openssl req -new -key server.key -out server.csr</​code>​
  
-У вас будет запрошена кодовая фраза (при использовании ключа с паролем - прим. пер.). Если введена корректная фраза, у вас запросят название компании,​ имя сайта, email и пр. Как только вы введете все эти подробности,​ будет создан запрос CSR и сохранен в файл server.csr.+У вас будет запрошена кодовая фраза (при использовании ключа с паролем - прим. пер.). Если введена корректная фраза, у вас запросят название компании,​ имя сайта, email и пр. Как только вы введете все эти подробности,​ будет создан запрос ​**CSR** и сохранен в файл ​**server.csr**.
  
-Теперь вы можете оправить CSR файл в центр сертификации для обработки. CA использует этот файл для выпуска сертификата. С другой стороны,​ вы можете создать и самозаверенный сертификат,​ используя этот же CSR.+Теперь вы можете оправить CSR файл в центр сертификации для обработки. CA использует этот файл для выпуска сертификата. С другой стороны,​ вы можете создать и самозаверенный сертификат,​ используя этот же **CSR**.
  
 ====Создание самоподписанного сертификата==== ====Создание самоподписанного сертификата====
Строка 78: Строка 78:
 Эта команда попросит вас ввести кодовую фразу. Как только вы введете корректную фразу, ваш сертификат будет создан и сохранен в файл **server.crt**. Эта команда попросит вас ввести кодовую фразу. Как только вы введете корректную фразу, ваш сертификат будет создан и сохранен в файл **server.crt**.
  
-Если ваш защищенный сервер будет использован в производстве,​ вам, возможно,​ потребуется сертификат,​ подписанный центром сертификации. В этом случае использование самоподписанных сертификатов не рекомендуется.+<note important>​Если ваш защищенный сервер будет использован в производстве,​ вам, возможно,​ потребуется сертификат,​ подписанный центром сертификации. В этом случае использование самоподписанных сертификатов не рекомендуется.</​note>​
  
 ====Установка сертификата==== ====Установка сертификата====
Строка 89: Строка 89:
 Теперь просто настройте любое приложение с возможностью использования криптографии на открытых ключах для использования этих файлов ключа и сертификата. Например,​ Apache может предоставить HTTPS, Dovecot предоставляет IMAPS и POP3S, и т.д. Теперь просто настройте любое приложение с возможностью использования криптографии на открытых ключах для использования этих файлов ключа и сертификата. Например,​ Apache может предоставить HTTPS, Dovecot предоставляет IMAPS и POP3S, и т.д.
  
-====Центр сертификатов====+====Центр сертификации====
  
-If the services on your network require more than a few self-signed certificates it may be worth the additional effort to setup your own internal Certification Authority ​(CA). Using certificates signed by your own CAallows the various services using the certificates to easily trust other services using certificates issued from the same CA.+Если сервисы вашей сети требуют больше чем самозаверенные сертификаты,​ может быть полезным дополнительное усилие по установке вашего собственного внутреннего центра сертификации ​(CA). Использование сертификатов,​ подписанных вашим центром,​ позволяют различным сервисам использовать сертификаты для простого доверия другим сервисам,​ использующих сертификатывыданные тем же CA.
  
-    Firstcreate the directories to hold the CA certificate ​and related files:+ 1. Сначала создайте каталоги для хранения сертификата CA и необходимых файлов:​ 
 +<​code>​ 
 +sudo mkdir /​etc/​ssl/​CA 
 +sudo mkdir /​etc/​ssl/​newcerts 
 +</​code>​ 
 + 2. Центр сертификации требует несколько дополнительных файлов для своей работы;​ один для хранения последнего серийного номераиспользованного ​CA,  другой для записи какие сертификаты были выпущены:​ 
 +<​code>​ 
 +sudo sh -c "echo '​01'​ > /​etc/​ssl/​CA/​serial"​ 
 +sudo touch /​etc/​ssl/​CA/​index.txt 
 +</​code>​ 
 + 3. Третий файл - это файл настроек CA. Хотя он не строго обязателен,​ но очень удобен для выпуска множества сертификатов. Отредактируйте /​etc/​ssl/​openssl.cnf,​ изменив секцию **[ CA_default ]**: 
 +<​code>​ 
 +dir             = /​etc/​ssl/ ​            # Where everything is kept 
 +database ​       = $dir/​CA/​index.txt ​    # database index file. 
 +certificate ​    = $dir/​certs/​cacert.pem # The CA certificate 
 +serial ​         = $dir/​CA/​serial ​       # The current serial number 
 +private_key ​    = $dir/​private/​cakey.pem#​ The private key 
 +</​code>​ 
 + 4. Далее создайте самоподписанный сертификат: 
 +<​code>​openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650</​code>​ 
 +Вам будут заданы вопросы по деталям сертификата.
  
-    ​sudo mkdir /etc/ssl/CA + 5. Теперь установим корневой сертификат и ключ: 
-    sudo mkdir /etc/ssl/newcerts+<​code>​ 
 +sudo mv cakey.pem ​/etc/ssl/private/ 
 +sudo mv cacert.pem ​/etc/ssl/certs/ 
 +</​code>​ 
 + 6. Теперь вы готовы приступить к выпуску сертификатов. Первое,​ что вам потребуется - запрос на сертификат (CSR). Смотрите детали в разделе [[#​создание_запроса_на_подпись_сертификата_(CSR)|Создание запроса на подпись сертификата (CSR)]]. Получив CSR, введите следующую команду для создания сертификата,​ подписанного нашим центром:​ 
 +<​code>​sudo openssl ca -in server.csr -config /​etc/​ssl/​openssl.cnf</​code>​ 
 +После ввода пароля для ключа CA у вас запросят подтверждение на подпись сертификата и еще одно на сохранение нового сертификата. Затем вы сможете увидеть нечто с объемным выводом,​ относящееся к созданию сертификата.
  
-    The CA needs a few additional files to operateone to keep track of the last serial number used by the CAeach certificate must have a unique serial numberand another file to record which certificates have been issued:+ 7. Теперь у вас должен появиться новый файл /​etc/​ssl/​newcerts/​01.pemс таким же содержаниемчто и в предыдущем выводе. Выделите и скопируйте всеначиная со строки **%%-----BEGIN CERTIFICATE-----%%** и до строки **%%-----END CERTIFICATE-----%%** в файл с названием по сетевому имени сервера,​ где он будет установлен. Например,​ **mail.example.com.crt** - вполне хорошее описательное имя.
  
-    sudo sh -c "echo '​01' ​> /etc/​ssl/​CA/​serial"​ +Последующие сертификаты будут иметь имена 02.pem, 03.pem и т.д. 
-    sudo touch /etc/ssl/CA/index.txt+<note>Замените mail.example.com.crt на ваше собственное описательное имя.</note> 
 + 8. Наконец,​ скопируйте новый сертификат на компьютер,​ для которого он выпущен,​ и настройте соответствующие приложения на его использование. Место по умолчанию для установки сертификатов - каталог ​/etc/ssl/certs. Это позволяет многим сервисам использовать один и тот же сертификат без чрезмерного усложнения прав доступа к файлу.
  
-    The third file is a CA configuration file. Though not strictly necessaryit is very convenient when issuing multiple certificates. Edit /​etc/​ssl/​openssl.cnf,​ and in the [ CA_default ] change: +Для приложенийкоторые могут быть настроены на использование сертификата ​CA, вы можете скопировать файл ​/​etc/​ssl/​certs/​cacert.pem ​в каталог ​/​etc/​ssl/​certs/ ​на каждом сервере.
- +
-    dir             = /​etc/​ssl/ ​            # Where everything is kept +
-    database ​       = $dir/​CA/​index.txt ​    # database index file. +
-    certificate ​    = $dir/​certs/​cacert.pem # The CA certificate +
-    serial ​         = $dir/​CA/​serial ​       # The current serial number +
-    private_key ​    = $dir/​private/​cakey.pem#​ The private key +
- +
-    Next, create the self-singed root certificate:​ +
- +
-    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 +
- +
-    You will then be asked to enter the details about the certificate. +
- +
-    Now install the root certificate and key: +
- +
-    sudo mv cakey.pem /​etc/​ssl/​private/​ +
-    sudo mv cacert.pem /​etc/​ssl/​certs/​ +
- +
-    You are now ready to start signing certificates. The first item needed is a Certificate Signing Request (CSR), see Generating a Certificate Signing Request (CSR) for details. Once you have a CSR, enter the following to generate a certificate signed by the CA: +
- +
-    sudo openssl ca -in server.csr -config /​etc/​ssl/​openssl.cnf +
- +
-    After entering the password for the CA key, you will be prompted to sign the certificate,​ and again to commit the new certificate. You should then see a somewhat large amount of output related to the certificate creation. +
- +
-    There should now be a new file, /​etc/​ssl/​newcerts/​01.pem,​ containing the same output. Copy and paste everything beginning with the line: -----BEGIN CERTIFICATE----- and continuing through the line: ----END CERTIFICATE----- lines to a file named after the hostname of the server where the certificate will be installed. For example mail.example.com.crt,​ is a nice descriptive name. +
- +
-    Subsequent certificates will be named 02.pem, 03.pem, etc. +
- +
-    Replace mail.example.com.crt with your own descriptive name. +
- +
-    Finally, copy the new certificate to the host that needs it, and configure the appropriate applications to use it. The default location to install certificates is /​etc/​ssl/​certs. This enables multiple services to use the same certificate without overly complicated file permissions. +
- +
-    For applications that can be configured to use a CA certificateyou should also copy the /​etc/​ssl/​certs/​cacert.pem ​file to the /​etc/​ssl/​certs/ ​directory on each server.+
  
 ====Ссылки==== ====Ссылки====
  
-    For more detailed instructions on using cryptography see the SSL Certificates HOWTO by tlpd.org +  -- Для более детальных инструкций по использованию криптографии смотрите [[http://​tldp.org/​HOWTO/​SSL-Certificates-HOWTO/​index.html|SSL Certificates HOWTO]] на tlpd.org. 
- +  -- Страница Википедии [[http://​en.wikipedia.org/​wiki/​Https|HTTPS]] содержит больше относительно ​HTTPS. 
-    The Wikipedia ​HTTPS page has more information regarding ​HTTPS. +  -- Для дополнительной информации по OpenSSL ​смотрите [[http://​www.openssl.org/​|домашнюю страницу ​OpenSSL]]
- +  -- Также хорошее глубокое руководство [[http://​oreilly.com/​catalog/​9780596002701/​|Network Security with OpenSSL]] от O'​Reilly.
-    For more information on OpenSSL ​see the OpenSSL ​Home Page+
- +
-    Also, O'​Reilly'​s ​Network Security with OpenSSL ​is a good in depth reference. +
  
 ---- ----