Skip to content
andyceo edited this page Jan 23, 2016 · 9 revisions

Сертификат - это метод распространения открытого ключа и другой информации о сервере и организации, ответственной за него. Сертификат может иметь цифровую подпись, которая сделана центром сертификации (CA).

Для того, чтобы использовать сертификат, как правило, надо осуществить следующие действия:

  1. Сгенерировать открытый и закрытый ключи сервера
  2. Создать запрос на сертификат: CSR (включающий открытый ключ, информацию о сервере, и управляющей им компании). Запрос представляет собой текстовый файл, содержащий в закодированном виде информацию об администраторе домена и открытый ключ.
  3. Отправить файл запроса центру сертификации (CA), вместе с подтверждающими документами
  4. Центр проверяет запрос на сертификат и вашу идентичность, и затем отсылает в ответ сертификат для вашего сервера
  5. Установить полученный сертификат на сервер и настроить нужные приложения на его использование

Ссылки:

Создание запроса на подпись сертификата (CSR)

Этот раздел описывают все действия, необходимые, чтобы сгенерировать открытый и закрытый ключи сервера, и создать запрос на сертификат (включающий открытый ключ, информацию о сервере, и управляющей им компании) (пункты 1. и 2.) Для создания самоподписанного сертификата, можно сразу перейти к разделу Создание самоподписанного сертификата.

Также, вместо используемых в инструкции имен ключей server.key.strong и server.key, лучше использовать имена, созданные на основе имени хоста, например, myhostname.key. Узнать имя хоста можно командой hostname.

  1. Сгенерируем запароленный безопасный приватный ключ сервера server.key.strong:

     openssl genrsa -des3 -out server.key.strong 2048
    

    Здесь надо обязательно ввести свою кодовую фразу на этот ключ. Этот ключ будет зашифрован этой кодовой фразой. Минимальная длина пароля - 4 символа, лучше 20. Этот ключ в следующем шаге будет использован для генерации другого ключа, без кодовой фразы, который будет использован для создания CSR, и этот второй ключ без кодовой фразы будет использован приложениями, работающими с SSL.

  2. Теперь, на основе безопасного ключа server.key.strong, создадим небезопасный ключ server.key, без кодовой фразы:

     openssl rsa -in server.key.strong -out server.key
    

    Будет запрошен пароль от ключа server.key.strong.

  3. Используя небезопасный ключ без пароля server.key, создадим CSR:

     openssl req -new -key server.key -out server.csr
    

    Будет спрошено:

     Country Name (2 letter code) [AU]:RU
     State or Province Name (full name) [Some-State]:Moscow
     Locality Name (eg, city) []:Moscow
     Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ruware
     Organizational Unit Name (eg, section) []:
     Common Name (e.g. server FQDN or YOUR name) []:andyceo
     Email Address []:andyceo@yandex.ru
    
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []:
     An optional company name []:
    

    Краткое описание дополнительных полей:

    The "challenge password" is basically a shared-secret nonce between you and the SSL issuer, embedded in the CSR, which the issuer may use to authenticate you should that ever be needed. This field ("optional company name") is part of the certificate request; The certificate issuer may look up this name or not. But this field will not appear in the resulting certificate, unlike organizationName.

Создание самоподписанного сертификата

  • Создаем самоподписанный сертификат на основе уже имеющегося файла запроса сертификата (CSR) server.csr (можно использовать файл, сгенерированный в пункте Создание запроса на подпись сертификата (CSR)):

      openssl x509 -req -days 9999 -in server.csr -signkey server.key -out server.crt
    

    Эта команда создаст файл сертификата server.crt.

  • Создаем самоподписанный сертификат без файла запроса сертификата (CSR):

      openssl req -new -x509 -days 9999 -nodes -out server.crt -keyout server.key
    

    Эта команда создаст два файла, приватный ключ сервера server.key, и файл сертификата server.crt.

    Она же в неинтерактивном режиме:

      openssl req -new -x509 -days 9999 -nodes -subj "/C=RU/ST=Moscow/L=Moscow/O=Ruware/OU=IT Department/CN=ruware.com" -out server.crt -keyout server.key
    

    Здесь в опции --subj указана вся необходимая для сертификата информация.

Получение бесплатного сертификата 1-го класса (Class 1) на startssl.com

  1. Регистрируемся на сервисе startssl.com и заполняем анкету. Ждем, пока наши данные проверят
  2. @todo: дописать

Ссылки:

Получение бесплатного сертификата с помощью letsencrypt.org

@todo: дописать, интересная ссылка: https://community.letsencrypt.org/c/docs/

Sidebar is under construction

Clone this wiki locally