linux – Как настроить для Apache и Tomcat бесплатным сертификатом? – Stack Overflow на русском

linux - Как настроить  для Apache и Tomcat бесплатным сертификатом? - Stack Overflow на русском Сертификаты

4: обновление настроек apache

Итак, теперь настройки веб-сервера и брандмауэра откорректированы. Можно включить SSL и настроенный для поддержки сертификата виртуальный хост, а затем перезапустить веб-сервер.

Включите модуль Apache для SSL, mod_ssl, и модуль mod_headers, который необходим для работы сниппета SSL:

sudo a2enmod sslsudo a2enmod headers

Включите подготовленный виртуальный хост:

sudo a2ensite default-ssl

Также нужно включить файл ssl-params.conf:

sudo a2enconf ssl-params

Итак, теперь сайт и все необходимые модули включены. Проверьте синтаксис на наличие ошибок:

sudo apache2ctl configtest

Если ошибок нет, команда вернёт:

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this messageSyntax OK

Первая строка вывода сообщает, что директива ServerName установлена не глобально. Чтобы устранить это предупреждение, отредактируйте директиву ServerName в /etc/apache2/apache2.conf, указав доменное имя или IP сервера (это опционально, данное предупреждение устранять необязательно).

Если в синтаксисе обнаружены ошибки, исправьте их. Затем перезапустите веб-сервер:

sudo systemctl restart apache2

Extract private key from keystore

It is not possible to extract the Private key from a keystore directly, but there is a workaround with OpenSSL. You will need to:

  1. Convert the Java keystore file into the PKCS#12 standard file;
  2. Get the PKCS#12 file converted into a separate PEM encoded Private key file, i.e. export the Private key;
  3. View the content of the newly created Private key file.

Follow the below commands to start the process:

  1. keytool -importkeystore -srckeystore yourkeystore.jks -destkeystore somefile.pfx -srcstoretype JKS -deststoretype PKCS12 -deststorepass password_from_your_pfx
  2. Note:

    Some Java versions running Tomcat (or another servlet container using keytool as a Private/Public keys management shell) have different prefered file extensions for PKCS#12 (e.g. older versions like JDK 1.6 and earlier can generate .p12 files). The current stable versions usually generate .pfx files. The file content of .p12 and .pfx files are essentially the same.

  3. openssl pkcs12 -in somefile.pfx -out private.key -nocerts -nodes
  4. cat private.key

Be aware that the exported Private key may contain additional attributes (such as Bag Attributes or Key Attributes) along with the key code itself. In the output file, feel free to remove the first ~4 lines standing before the —–BEGIN PRIVATE KEY—– tag.

Not using debian 8?

choose a different version or distribution.

Introduction

This tutorial walks you through the setup and configuration of an Apache server secured with an SSL certificate. By the end of the tutorial, you will have a server accessible via HTTPS.

SSL is based on the mathematical intractability of resolving a large integer into its also-large prime factors. Using this, we can encrypt information using a private-public key pair. Certificate authorities can issue SSL certificates that verify the authenticity of such a secured connection, and on the same note, a self-signed certificate can be produced without third-party support.

In this tutorial, we will generate a self-signed certificate, make the necessary configurations, and test the results. Self-signed certificates are great for testing, but will result in browser errors for your users, so they’re not recommended for production.

If you’d like to obtain a paid certificate instead, please see this tutorial.

Prerequisites

To follow this tutorial, you will need:

You may want a second computer with OpenSSL installed, for testing purposes:

  • Another Linux Droplet
  • Or, a Unix-based local system (Mac, Ubuntu, Debian, etc.)

Step 1 — install apache

In this step, we will use a built-in package installer called apt-get. It simplifies package management drastically and facilitates a clean installation.

In the link specified in the prerequisites, you should have updated apt-get and installed the sudo package, as unlike other Linux distributions, Debian 8 does not come with sudo installed.

Apache will be our HTTPS server. To install it, run the following:

Step 2 — enable the ssl module

In this section, we will enable SSL on our server.

First, enable the Apache SSL module.

The default Apache website comes with a useful template for enabling SSL, so we will activate the default website now.

Restart Apache to put these changes into effect.

Step 3 — create a self-signed ssl certificate

First, let’s create a new directory where we can store the private key and certificate.

Next, we will request a new certificate and sign it.

First, generate a new certificate and a private key to protect it.

  • The days flag specifies how long the certificate should remain valid. With this example, the certificate will last for one year
  • The keyout flag specifies the path to our generated key
  • The out flag specifies the path to our generated certificate

Invoking this command will result in a series of prompts.

  • Common Name: Specify your server’s IP address or hostname. This field matters, since your certificate needs to match the domain (or IP address) for your website
  • Fill out all other fields at your own discretion.

Example answers are shown in red below.

Interactive

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) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:NYC Organization Name (eg, company) [Internet Widgits Pty Ltd]:DigitalOcean Organizational Unit Name (eg, section) []:SSL Certificate Test Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:test@example.com

Set the file permissions to protect your private key and certificate.

For more information on the three-digit permissions code, see the tutorial on Linux permissions.

Your certificate and the private key that protects it are now ready for Apache to use.

Step 4 — configure apache to use ssl

In this section, we will configure the default Apache virtual host to use the SSL key and certificate. After making this change, our server will begin serving HTTPS instead of HTTP requests for the default site.

Open the server configuration file using nano or your favorite text editor.

Locate the section that begins with <VirtualHost _default_:443> and make the following changes.

/etc/apache2/sites-enabled/default

ServerAdmin webmaster@localhost
ServerName example.com:443
  • Find the following two lines, and update the paths to match the locations of the certificate and key we generated earlier. If you purchased a certificate or generated your certificate elsewhere, make sure the paths here match the actual locations of your certificate and key:

/etc/apache2/sites-enabled/default

 SSLCertificateFile /etc/apache2/ssl/apache.crt
 SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Once these changes have been made, check that your virtual host configuration file matches the following.

/etc/apache2/sites-enabled/default-ssl

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName example.com:443
        DocumentRoot /var/www/html

        . . .
        SSLEngine on

        . . .

        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Save and exit the file.

Restart Apache to apply the changes.

To learn more about configuring Apache virtual hosts in general, see this article.

Step 5 — test apache with ssl

In this section, we will test your SSL connection from the command line.

You can run this test from either (1) your local Unix-based system, (2) another Droplet, or (3) the same Droplet. If you run it from an external system you’ll confirm that your site is reachable over the public Internet.

Open a connection via the HTTPS 443 port.

Scroll to the middle of the output (after the key), and you should find the following:

Output

—- SSL handshake has read 3999 bytes and written 444 bytes —- . . . SSL-Session: . . .

Of course, the numbers are variable, but this is success. Congratulations!

Press CTRL C to exit.

You can also visit your site in a web browser, using HTTPS in the URL (https://example.com). Your browser will warn you that the certificate is self-signed. You should be able to view the certificate and confirm that the details match what you entered in Step 3.

Conclusion

This concludes our tutorial, leaving you with a working Apache server, configured securely with an SSL certificate. For more information on working with OpenSSL, see the OpenSSL Essentials article.

Proprietary keystore format warning

If you have a JDK version older than version 9 installed, the keystore will be generated in the JKS format (which should not be confused with the .jks file extension). The current up-to-date openjdk environment will give the following warning for such a keystore:

The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format …”

You can probably disregard the warning and install the certificate as usual. Still, to stay on the safe side, you should probably convert the JKS keystore into the PKCS#12 format for the sake of compatibility. You can use the below command to convert this keystore type:

keytool -importkeystore -srckeystore yourkeystore.jks -destkeystore yourkeystore.jks -deststoretype pkcs12

Where yourkeystore.jks is the actual name/path to your keystore file.

Once done, you can check the keystore type by listing the keystore contents.

The successful output will give a warning stating that the previous keystore in the JKS format was backed up in a separate file:

Migrated “yourkeystore.jks” to PKCS12. The JKS keystore is backed up as “yourkeystore.jks.old”.

Step 1: upload ssl files

Upload the PKCS#7 certificate file on the server. Then, import it using the following command:

keytool -import -trustcacerts -alias tomcat -file certificate.p7b -keystore yourkeystore.jks

Where:

  • tomcat is the actual alias of your keystore
  • certificate.p7b is the actual name/path to your certificate file
  • yourkeystore.jks is the actual name/path to the keystore file

Make sure the certificate file has the same alias used for creating the keystore. Otherwise, the “Input not an X.509 certificate” error may take place.

After you have imported successfully, you should receive the following output:

Certificate reply was installed in keystore

Step 2: import the files

Follow the below steps in the given order to import the files properly.

Import the root certificate by running:

keytool -import -trustcacerts -alias root -file root.crt -keystore yourkeystore.jks

Where:

  • root is the alias of the imported CA root certificate
  • root.crt is the actual name/path of your CA root certificate
  • yourkeystore.jks is the actual name/path of the keystore file

Note: During import of the CA root certificate, you may be prompted with the following message.

Certificate already exists in system-wide CA keystore under alias <aliasname>Do you still want to add it to your own keystore? [no]:

Disregard the warning and confirm certificate import with submitting y.

Import the second intermediate certificate:

keytool -import -trustcacerts -alias intermediate2 -file intermediate_2.crt -keystore yourkeystore.jks

Where:

  • intermediate2 is the alias of the imported second intermediate CA certificate
  • intermediate_2.crt is the actual name/path of your second intermediate CA certificate

Import the first intermediate certificate:

keytool -import -trustcacerts -alias intermediate1 -file intermediate_1.crt -keystore yourkeystore.jks

Where:

  • intermediate1 is the alias of the imported first intermediate CA certificate
  • intermediate_1.crt is the actual actual name/path of your first intermediate CA certificate

After the successful import of each of the above certificates, you should receive the following output:

Certificate was added to keystore

Import the end-entity certificate for your domain:

keytool -import -trustcacerts -alias tomcat -file certificate.crt -keystore yourkeystore.jks

Where:

  • tomcat is the actual alias of your keystore. The alias for your end-entity certificate should be the same as the one you used when creating the keystore with the Private key. If you did not specify the alias during the keystore creation, the default value will be mykey.
  • certificate.crt is the actual actual name/path of your end-entity certificate file.

After import of the end-entity certificate, the below message will be prompted:

Certificate reply was installed in keystore

Генерация криптографических ключей

Для генерации криптографических ключей понадобится ввести ряд команд в окне командной строки. Прежде всего, для хранения криптографических файлов создадим папку “D:wwwconfssl” и сделаем её текущей:

D:MD wwwconfsslCD wwwconfssl

Механизмы криптографии в поставке Apache от Apache Lounge реализованы с помощью пакета OpenSSL, который представлен программой “Apache24binopenssl.exe”. Чтобы не набирать постоянно полный путь к ней, добавим папку с двоичными файлами веб-сервера в переменную среды окружения PATH:

PATH %PATH%;”%ProgramFiles%Apache24bin”

Для генерации секретного ключа сервера нужно в консоли OpenSSL ввести команду:

openssl.exe genrsa -out server.key 2048

В этой команде “server.key” — это имя файла, в который будет записан секретный ключ, а “2048” — длина ключа в битах. Файл “server.key” содержит конфиденциальную информацию, поэтому нужно принять меры по его защите, чтобы предотвратить компрометацию сервера.

Открытый ключ сервера может быть извлечён из секретного ключа и выгружен в файл “server.pub” командой:

openssl.exe rsa -in server.key -pubout > server.pub

Как настроить для apache и tomcat бесплатным сертификатом?

  • У вас должен быть root доступ к серверу через ssh.
  • Устанавливаем программу certbot. Она c открытыми исходниками и позволяет автоматически сгенерировать, установить и обновлять SSL сертификат для Apache

    (Инструкции с сайта программы, для Apache и Ubuntu 18.04, там же есть для других программ и ОС):

    sudo apt-get update
    sudo apt-get install software-properties-common
    sudo add-apt-repository universe
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update
    
    sudo apt-get install certbot python-certbot-apache
    
  • Запускаем для Apache

    sudo certbot --apache
    

    Запустится программа, которая за несколько шагов всё настроит, сгенерировав файлы сертификата и прописав его в конфигурацию Apache. В конце расскажет, где лежат сгенерированные файлы сертификата. Также программа добавит задачу в cron для проверки срока истечения сертификата (90 дней) и его автоматического продления (для этого будут сгенерированы новые файлы и обновлена конфигурация (наверное))

  • Для Tomcat сложнее. Я не нашёл инструкцию по автоматической настройке, засим делаем вручную.

    Инструкция для Ubuntu 18:

    1. Копируем файлы приватного ключа, самого сертификата и цепочки (privkey, cert, chain) (у всех расширение – pem) в домашнюю папку юзера, который крутит Tomcat, выдав этому юзеру права на эти файлы.
    2. Прописываем в конфигурацию Tomcat (server.xml) пути до файлов так:

      <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
         maxThreads="150" SSLEnabled="true" >
              <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
              <SSLHostConfig>
                  <Certificate certificateKeyFile="${user.home}/privkey.pem"
                   certificateFile="${user.home}/cert.pem"
                   certificateChainFile="${user.home}/chain.pem"
                   type="RSA" />
              </SSLHostConfig>
      </Connector>
      
    3. Перезапускаем Tomcat.

    Инструкция для Debian 8:

    1. Копируем файлы приватного ключа, самого сертификата и цепочки (privkey, cert, chain) (у всех расширение – pem) в домашнюю папку юзера, который крутит Tomcat, выдав этому юзеру права на эти файлы.
    2. Создаёмpfx файл. Он нужен, т.к. по неизвестной мне причине Tomcat не хочет в данном случае принимать PEM файлы из-за каких-то там нативных либ, которые у меня не получилось настроить, т.к. инструкции, как всегда, для профи, обычный человек не разберётся.

      openssl pkcs12 -export -out bundle.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -password pass:password
      
    3. Прописываем в конфигурацию Tomcat (server.xml) пути до файлов так:

      <Connector
         protocol="org.apache.coyote.http11.Http11NioProtocol"
         port="8443"
         maxThreads="200"
         scheme="https" 
         secure="true" 
         SSLEnabled="true"
         keystoreFile="${user.home}/bundle.pfx" 
         keystorePass="password"
         clientAuth="false"
         sslProtocol="TLS" 
         keystoreType="PKCS12"/>
      
  • Местонахождение ключа и сертификата

    Для начала нужно создать сниппет конфигураций Apache, определяющий некоторые параметры SSL; здесь можно выбрать метод шифрования SSL и включить дополнительные функции безопасности. Заданные здесь параметры в дальнейшем могут быть использованы любыми виртуальными хостами для поддержки SSL.

    Создайте новый сниппет Apache в каталоге etc/apache2/conf-available.

    Рекомендуется указать в названии файла его назначение (к примеру, ssl-params.conf):

    sudo nano /etc/apache2/conf-available/ssl-params.conf

    Для безопасной настройки SSL обратимся к рекомендациям Remy van Elst на сайте Cipherli.st. Этот сайт предназначен для распространения простых и надёжных параметров шифрования для популярного программного обеспечения.

    Примечание: Данный список настроек подходит для более новых клиентов. Чтобы получить настройки для других клиентов, перейдите по ссылке Yes, give me a ciphersuite that works with legacy/old software.

    Скопируйте все предложенные параметры.

    Единственное небольшое изменение, которое нужно внести в эти настройки – отключить заголовок Strict-Transport-Security (HSTS).

    Предварительная загрузка заголовка HSTS обеспечивает повышенную безопасность, но может иметь далеко идущие последствия, если заголовок был включен случайно или некорректно. В этом мануале мы не будем включать эту опцию, но вы можете изменить это позже, если уверены, что понимаете последствия.

    Получение сертификата

    Чтобы получить сертификат веб-сервера, нужно на основе криптографических ключей составить запрос в удостоверяющий центр на выдачу сертификата. Формирование запроса производится командой:

    openssl.exe req -new -key server.key -out server.csr -config ../openssl.cnf

    В параметре “-config” указан путь к файлу конфигурации OpenSSL, который находится в папке “conf” поставляемого пакета с веб-сервером.

    Для генерации запроса нужно набрать с клавиатуры ответы на задаваемые вопросы о принадлежности и реквизитах сервера. На этом этапе важно иметь в виду, что для ввода в поле данных пустого значения нужно ввести ” . ” (точку). Если вместо этого просто нажать клавишу [Enter], то будет принято значение по умолчанию, которое указано в квадратных скобках. А сами данные следующие:

    County name
    — двухзначный буквенный код страны;
    State or Province Name
    — название региона, области, района;
    Locality Name
    — название населённого пункта;
    Organization Name
    — название организации;
    Organizational Unit Name
    — название подразделения;
    Common Name
    — доменное имя сервера;
    Email Address
    — контактный адрес электронной почты;
    A challenge password
    — кодовое слово;
    An optional company name
    — дополнительное название организации;

    Значения последних двух полей вводить не обязательно. Самое главное — правильно указать доменное имя сервера, потому что именно по этому реквизиру веб-браузеры будут проверять подлинность веб-сервера.

    В результате выполнения этой команды будет сформирован файл “server.csr”, содержащий необходимую для выдачи сертификата информацию. Этот файл можно отправлять в удостоверяющий центр, после чего ожидать от него ответа.

    Но для локального тестирования сайта или внутреннего использования в корпоративной интрасети можно подписать сертификат секретным ключом самого веб-сервера, а не удостоверяющего центра, получив так называемый “самоподписанный” сертификат. Делается это с помощью команды:

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

    Сертификат сроком на 365 дней, подписанный секретным ключом сервера “server.key” в ответ на запрос “server.csr”, помещается в файл “server.crt”.

    Создание и установка ssl сертификата на nginx или apache, на сервере freebsd | sqr`s blog

    Создание SSL сертификатов

    Рассказывать что это такое не буду… гугл Вам в помощь 🙂
    И так начнем:
    Генерация частного ключа и CSR

    Программный пакет openssl может быть использован для генерации приватного RSA ключа и создания CSR. Он так же может быть использован
    для создания самоподписных сертификатов которые могут быть использованы для тестовых целей или внутреннего пользования. Программа, которая
    обычно используется для решения этих задач, известна как openssl. Она должна быть установлена в директории /usr/local/ssl. Может быть, вам
    придется добавить эту директорию в переменную PATH или же переместить эту программу в директорию, которая уже прописана в переменной PATH,
    для того чтобы не писать полный путь. Дальнейшие примеры полагают, что openssl доступен вам без необходимости писать полный путь.

    В первую очередь надо создать ваш приватный ключ. Это будет 1024 битный ключ стандарта RSA зашифрованный с использованием алгоритма TripleDES и хранящийся в формате PEM, так что его можно будет читать как простой текст. Мы будем использовать несколько файлов для усиления
    случайности и для того чтобы сделать наш ключ более секретным.
    Текстовые файлы, которые были сжаты утилитой типа gzip . станут хорошим выбором. Ключ генерируется следующей командой, где file1:file2:etc представляют собой случайные сжатые файлы.

    Переходим в папку куда будем помещать сертификаты:

    Cоздаем ваш приватный ключ

    Программа предложит вам ввести пароль и сохранит ключ в файле server.key. Очень важно не забыть пароль. Если ключ будет утерян или пароль будет забыт сертификат станет бесполезен. Невозможно выразить как важен приватный ключ для сертификата. Если приватный ключ или пароль скомпрометированы сертификат должен быть отменен. Как минимум это будет стоить вам денег заплаченных за сертификат. Было бы хорошей идеей сделать резервную копию на безопасном носителе, таком как кассета или дискета.

    Один неприятный сторонний эффект ключа с паролем это то что Apache или nginx будет всякий раз спрашивать пароль при старте. Понятно что это не очень удобно если только кто-то не находится постоянно рядом на случай
    перезагрузки или аварийной остановки. mod_ssl (Для апача) включает в себя возможность использования внешней программы вместо встроенного парольного диалога. Возможно убрать пароль из ключа. Если приватный ключ более не зашифрован, важно чтобы файл его содержащий, был доступен на чтение только пользователю root. Если ваша система скомпрометирована и третья сторона получила ваш незашифрованный приватный ключ, производный сертификат должен быть отменен. После того что мы сказали, используйте следующую команду для того чтобы убрать пароль из ключа.

    Или же просто в первом шаге не используйте ключ -des3

    После того как приватный ключ сгенерирован может быть сгенерирован запрос на подпись сертификатов(CSR —). CSR может быть использован двояко. В идеале CSR должен быть послан к CA такому как Tawte или VeriSign, которые проверят подлинность запрашивающего и выдадут подписанный сертификат. Другой путь — подписать CSR самостоятельно, что будет продемонстрировано ниже.
    Во время генерации CSR вас попросят ввести некоторое количество информации. Один из вопросов будет Common Name (eg, YOUR name) []:
    Важно чтобы это поле содержало полностью квалифицированное имя домена вашего сервера. Если вебсайт имеет адрес www.zatusim.ru то вы должны написать именно www.zatusim.ru Команда для генерации CSR выглядит так.

    Пример подстановки:

    Генерация самоподписанного сертификата

    На этом этапе вам необходимо сгенерировать самоподписанный сертификат потому что вы или не планируете заводить сертификат подписанный CA, или хотите потестировать новую реализацию SSL пока CA подписывает ваш сертификат. Мой опыт общения с Tawte показывает, что получение сертификата занимает неделю и больше. Время которое занимает получение сертификата варьируется от того как быстро CA получит необходимые документы. Временный сертификат будет выдавать ошибку в клиентском броузере от того, что CA неизвестен и не проверен.

    Для того чтобы сгенерировать сертификат годный в течение 60 дней введите следующую команду.

    Установка ключа и сертификата
    У меня все виртуальные хоты грузятся из папки.. в прошлой статье я писал как это сделать…

    В конфиге хоста должно получиться примерно следующее:

    Заходим на свой домен с https в итоге, так как сертификат у нас не подписан «спец службами» 🙂 в ФФ мы получим что сертификат не подписан, считываем его и добавляем в доверенные. ИЕ скажет что не безопасно 🙂 мы то знаем что все пучком… заходим и видим что прекрасно соединились…

    ДЛя тех кто настраивает под apache mod_ssl

    Когда Apache и mod_ssl установлены — создаются несколько поддиректорий в конфигурационной директории Apache. Их расположение зависит от того, как компилировался Apache. Если использовать мои инструкции, компилируя Apache, конфигурационная директория будет /usr/local/apache/etc Директории, которые создает mod_ssl содержат в себе файлы ssl.crt, ssl.csr, и ssl.key Это хорошее место для хранения сертификатов, запросов на подпись и приватных ключей. Если у вас будет несколько хостов с SSL хорошей практикой стать включение в имена этих файлов имен защищаемых хостов.

    Добавляя виртуальные хосты к веб-серверу, я обычно предпочитаю хранить их конфигурации в отдельном файле. Это дает уверенность, что все конфигурации могут быть быстро найдены, и, заодно, не позволяет основному конфигурационному файлу разрастаться. Если все виртуальные хосты сохранены в файле ssl.conf, то для того чтобы Apache нашел его и прочитал надо включить в основной конфиг следующюю строку:

    Конфигурирование виртуального хоста, использующего SSL.

    Обширные примеры конфигурации SSL для виртуальных хостов включены в файл /usr/local/apache/etc/httpd.conf.default, который устанавливается вместе с mod_ssl. Ознакомьтесь с документацией на mod_ssl для того чтобы получить более подробную информацию о возможностях конфигурации. Простой хост использующий SSL в конфигурационном файле может быть прописан так. SSL Virtual Hosts

    Не забудьте скопировать ваш сертификат туда куда указали путь в апаче. или же пропишите свой.

    Этот пример создаст виртуальный хост с именем. который доступен через порт 443 (стандартный порт для протокола https) сайты с IP адресом вашего сервера. Можно создать столько дополнительных виртуальных хостов для вашего сервера сколько IP адресов он обслуживает. Просто добавьте дополнительные конфигурационные блоки между дерективами.

    По архитектурным причинам протокол SSL не позволяет создавать name-based (HTTPS 1.1) виртуальные хосты. Для того чтобы создать новый виртуальный хост с поддержкой SSL на другом IP адресе просто замените _default_на новый IP.

    Посте добавления виртуального хоста к конфигурационному файлу Apache должен быть остановлен и вновь запущен для того чтобы новый виртуальный хост заработал. К несчастью это один из тех случаев когда простая отправка сигнала HUP не сработает. После перезапуска в зависимости от того какой (шифрованный или нет ) ключ был использован Apache может спросить у вас пароль или пароли. Введите пароль, и всё заработает.

    Теперь вы можете использовать ваш любимый броузер для просмотра содержимого только что созданного виртуального хоста защищённого SSL . Не забудьте использовать префикс https:// вместо http://. Вы получите окно с предупреждением, если вы использовали самоподписанный сертификат. Подтвердите согласие и страница продолжит загружаться уже защищенная с помощью SSL . Статусная строка вашего броузера должна содержать иконку в виде замка которая показывает что страница защищена. Вот и всё.

    Установка ssl-сертификата: apache mod ssl openssl

    В письме с уведомлением о выпуске SSL-сертификата содержится zip-архив. В архиве содержится 2 файла “domainname.crt” и “domainname.ca-bundle”. Первый является сертификатом для вашего домена, а второй содержит корневой и промежуточные сертификаты.

    Шаг 1. Скопируйте файлы domainname.crt и domainname.ca-bundle на сервер в ту же директорию, в которой содержится Private Key (приватный ключ).

    В данном примере мы используем ‘/etc/ssl/crt/’ . The private key (приватный ключ), используемый в примере, помечен как ‘private.key’ , а public key будет называться ‘yourDOMAINNAME.crt’ .

    Примечание : Рекомендуем Вам создавать директорию, содержащую файл private key (приватный ключ), видимой только корневым каталогом.

    Совет: рекомендуется выставить права доступа на чтение для директории, содержащей приватный ключ только для пользователя root.

    Шаг 2. Установите на сервере корневой и промежуточный сертификаты.

    2.1. Откройте в текстовом редакторе конфигурационный файл сервера Apache 2.х httpd.conf. Найдите раздел VirtualHost, относящийся к вашему SSL-сертификату. Убедитесь, что в нем содержатся три следующие строки. Если их нет – их необходимо добавить:

    SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
    SSLCertificateFile /etc/ssl/crt/domainname.crt
    SSLCertificateKeyFile /etc/ssl/crt/private.key

    Для Apache 1.x используйте вместо SSLCertificateChainFile директиву SSLCACertificateFile:

    SSLCACertificateFile /etc/ssl/crt/domainname.ca-bundle 

    Примечание: в ряде конфигураций Virtual Host размещается в файле ssl.conf. Если в файле httpd.conf не содержится раздел
    Virtual Host, тогда поищите его в файле ssl.conf как было сказано выше.

    2.2. Сохраните изменения и закройте текстовый редактор.

    2.3. Запустите (или перезапустите) ваш веб-сервер Apache.

    Дополнительная информация

    Файл httpd.conf должен содержать несколько или все следующие строки (для IP-based сайта). Строки, относящиеся к настройкам SSL
    выделены жирным шрифтом. Строки, выделенные курсивом используются только для отладки (для выявления проблем при настройке SSL).

    
    <VirtualHost 192.168.1.1:443>
    DocumentRoot /var/www/html
    ServerName 192.168.1.98
    ServerAdmin someone@your.domain
    ErrorLog /etc/httpd/logs/ssl_error_log
    TransferLog /etc/httpd/logs/ssl_access_log
    SSLEngine On
    SSLCertificateFile /etc/ssl/crt/domainname.crt
    SSLCertificateKeyFile /etc/ssl/crt/domainname.key
    SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
    SSLSessionCache dbm:/var/cache/httpd/ssl_cache

    </VirtualHost>

    Узнать больше о настройке веб-сервера Apache можно на сайте http://httpd.apache.org/docs-2.0/mod/mod_ssl.html

    Проверить настройки можно используя веб-браузер. Используйте https-протокол (например, https://ваш сервер/) для просмотра кодированных страниц.
    Иконка браузера с изображением навесного замка отображается в виде закрытого замка, если ваш сертификат установлен корректно и сервер правильно
    настроен.

    Шаг 4 — установка автообновления

    Сертификаты Let’s Encrypt действительны на протяжении 90 дней. Однако рекомендуется обновлять их каждые 60 дней, чтобы не пропустить срок. У клиента Let’s Encrypt есть команда, которая позволяет обносить сертификат, если до истечения срока его валидности меньше 30 дней. Это позволяет сделать команда:

    Есть запустить эту программу сразу, после установки сертификата, то она толкьо проинформирует, что пока нет необходимости обновлять сертификат:

    Чтобы обеспечить автоматическое обновление сертификатов, воспользуемся командой cron. Сертификаты будут проверяться и обновляться только если будет менее 30 дней до даты истечения их валидности.Отредактируем crontab и создадим новое задание, которео будет запускать программу проверки и обновления сертификатов каждую неделю:

    Включите следующую строку:30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt-renew.logСохраните и выйдите из редактирования файла. Эта создаст новую задачу cron, которая будет автоматически запускать letsencrypt-auto каждый понедельник в 2:30. Результат будет выводиться в лог файл по адресу /var/log/ letsencrypt-renew.log.

    Про сертификаты:  Отвод сертификаты | Веста Металл
    Оцените статью
    Мой сертификат
    Добавить комментарий