- 4: обновление настроек apache
- Extract private key from keystore
- Not using debian 8? choose a different version or distribution.
- Introduction
- Prerequisites
- Step 1 — install apache
- Step 2 — enable the ssl module
- Step 3 — create a self-signed ssl certificate
- Step 4 — configure apache to use ssl
- Step 5 — test apache with ssl
- Conclusion
- Proprietary keystore format warning
- Step 1: upload ssl files
- Step 2: import the files
- Генерация криптографических ключей
- Как настроить для apache и tomcat бесплатным сертификатом?
- Местонахождение ключа и сертификата
- Получение сертификата
- Создание и установка ssl сертификата на nginx или apache, на сервере freebsd | sqr`s blog
- Установка ssl-сертификата: apache mod ssl openssl
- Шаг 4 — установка автообновления
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:
- Convert the Java keystore file into the PKCS#12 standard file;
- Get the PKCS#12 file converted into a separate PEM encoded Private key file, i.e. export the Private key;
- View the content of the newly created Private key file.
Follow the below commands to start the process:
keytool -importkeystore -srckeystore yourkeystore.jks -destkeystore somefile.pfx -srcstoretype JKS -deststoretype PKCS12 -deststorepass password_from_your_pfxopenssl pkcs12 -in somefile.pfx -out private.key -nocerts -nodescat private.key
| 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. |
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
daysflag specifies how long the certificate should remain valid. With this example, the certificate will last for one year - The
keyoutflag specifies the path to our generated key - The
outflag 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.comSet 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.keyOnce 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.keySave 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:
tomcatis the actual alias of your keystorecertificate.p7bis the actual name/path to your certificate fileyourkeystore.jksis 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:
rootis the alias of the imported CA root certificateroot.crtis the actual name/path of your CA root certificateyourkeystore.jksis 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:
intermediate2is the alias of the imported second intermediate CA certificateintermediate_2.crtis 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:
intermediate1is the alias of the imported first intermediate CA certificateintermediate_1.crtis 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:
tomcatis 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.crtis 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:
- Копируем файлы приватного ключа, самого сертификата и цепочки (
privkey,cert,chain) (у всех расширение –pem) в домашнюю папку юзера, который крутитTomcat, выдав этому юзеру права на эти файлы. Прописываем в конфигурацию
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>Перезапускаем
Tomcat.
Инструкция для Debian 8:
- Копируем файлы приватного ключа, самого сертификата и цепочки (
privkey,cert,chain) (у всех расширение –pem) в домашнюю папку юзера, который крутитTomcat, выдав этому юзеру права на эти файлы. Создаём
pfxфайл. Он нужен, т.к. по неизвестной мне причине Tomcat не хочет в данном случае принимать PEM файлы из-за каких-то там нативных либ, которые у меня не получилось настроить, т.к. инструкции, как всегда, для профи, обычный человек не разберётся.openssl pkcs12 -export -out bundle.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -password pass:passwordПрописываем в конфигурацию
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
Шаг 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.
