Lets encrypt ssl windows apache

Let’s Encrypt is an effort by the Internet Security Research Group (ISRG) to provide free SSL certificates in order to encourage website owners to secure their websites with encryption. It is gaining in popularity and recently issued its two-millionth certificate.

There are many benefits of enabling SSL encryption on a website, including securing user information if they need to login to the site and getting a higher ranking on Google Search.

If you currently run Apache (or the other distributions such as XAMPP and WampServer) on Windows, then this guide is for you.

We will use a third party tool call letsencrypt-win-simple created specifically for Windows platform. This is because the official letsencrypt-auto script does not support Windows at this point of writing.

Download the latest version from the letsencrypt-win-simple release page here: https://github.com/Lone-Coder/letsencrypt-win-simple/releases

At this point of writing, the latest release is v1.9.0 and this is the direct link to the binary download in zip format: https://github.com/Lone-Coder/letsencrypt-win-simple/releases/download/v1.9/letsencrypt-win-simple.v1.9.0.zip

[EDIT: Auto renewal doesn’t work with v1.9.0 (see #195), so you should download v1.8.0 at the moment, until the corresponding fix is released for newer version.]

Extract the zip into a folder which you will keep permanently and have write access. If you are unsure, the folder C:\letsencrypt-win-simple\ should be a good choice.

(B) Obtain an SSL certificate (Test Run)

Open the command prompt and navigate to the previous letsencrypt-win-simple folder.

cd C:\letsencrypt-win-simple

Then run the letsencrypt tool to generate a certificate for your domain in test mode. By using the test mode, the generated certificates will not count against the rate limit.

letsencrypt.exe --manualhost <domain-name> --webroot <document-root> --test
  • Replace <domain-name> with the actual domain name which you want to create the certificate for.
  • Replace <document-root> with the htdocs or www folder of Apache.
  • For example:

    letsencrypt.exe --manualhost www.commaster.net --webroot "C:\xampp\htdocs" --test
    

If the certificate generation is successful, a message similar to the following will appear.

Authorizing Identifier <domain-name> Using Challenge Type http-01
 Writing challenge answer to <document-root>\.well-known/acme-challenge/<challenge-text>
 Answer should now be browsable at <document-root>/.well-known/acme-challenge/<challenge-text>
 Submitting answer
 Refreshing authorization
 Authorization Result: valid

Requesting Certificate
 Request Status: Created
 Saving Certificate to C:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\<domain-name>-crt.der
 Saving Issuer Certificate to D:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\ca-<hex>-crt.pem
 Saving Certificate to D:\Users\<username>\AppData\Roaming\letsencrypt-win-simple\httpsacme-stage.api.letsencrypt.org\<domain-name>-all.pfx

You can safely skip the below to Section C if your test generation is successful.

In order to authorize itself, the letsencrypt tool will answer the HTTP challenge from Let’s Encrypt server, by placing the challenge file under the folder <document-root>/.well-known/. Therefore, it’s important that the .well-known folder can be publicly accessed through http://<domain-name>/.well-known/. A usual problem for many users of PHP or Python framework is that the framework redirect the root path of the domain url to their own processing script. In this case, you need to place an alias in your Apache configuration file such as below:

Alias /.well-known <document-root>/.well-known
  • Replace <document-root> accordingly. For example:

    Alias /.well-known "C:/xampp/htdocs/.well-known"
    

Restart Apache server and attempt the test generation above again.

(C) Obtain an SSL certificate (Actual Run)

If your test generation has been successful, proceed to generate the actual certificate by removing the –test argument from the command.

letsencrypt.exe --manualhost <domain-name> --webroot <document-root>

The tool will ask you for some information. Answer accordingly.

Lastly, the tool will setup a schedule task which runs every 9.00am in the morning. Let’s Encrypt certificates are issued with a validity of 90 days. This task will help to renew the certificates within 30 days before expiry, so you will never have to worry about certificate expiry anymore.

From the output of the tool, note the path of the certificate file and issuer certificate file.

(D) Configure Apache to use the SSL certificate

You need to configure an SSL-enabled virtual host for your domain name. Refer to the Apache docs on how to do that. In the virtual host configuration, specify the path to the certificate file, certificate key file, and the certificate chain (issuer certificate) file, which you note down from the output actual generation in Section C (not test generation in Section B). Besides, it is recommended that you redirect all the http traffic to the https site with the correct domain name of your certificate.

Here is an example of a partial Apache configuration.

On the non-SSL virtual host:

<VirtualHost *:80>
    ServerAdmin admin@commaster.net
    ServerName www.commaster.net

    RewriteEngine On
    # Redirect to the HTTPS site
    RewriteCond %{HTTPS} off
    RewriteRule ^/?(.*)$ https://www.commaster.net/$1 [NE,L,R=301]
</VirtualHost>

On the SSL virtual host:

<VirtualHost *:443>
    ServerAdmin admin@commaster.net
    ServerName www.commaster.net

    RewriteEngine On
    # Redirect to the correct domain name
    RewriteCond %{HTTP_HOST} !^www.commaster.net$ [NC]
    RewriteRule ^/?(.*)$ https://www.commaster.net/$1 [NE,L,R=301]

    Alias /.well-known C:/xampp/htdocs/.well-known

    SSLEngine on
    SSLCertificateFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/<domain-name>-crt.pem"
    SSLCertificateKeyFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/<domain-name>-key.pem"
    SSLCertificateChainFile "C:/Users/<username>/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/ca-<hex>-crt.pem"
</VirtualHost>

Note that the alias for /.well-known path must be copied to the SSL virtual host because it is needed for future certificate renewals.

[EDIT: The “ServerAlias” directive has been removed from the configuration above because the certificate generated is only for a single subdomain. If you wish to have alternate domain names, you may use a redirection as suggested by Alexander in his comments below.]

Restart Apache server so that the new configuration will take effect.

References:

  • https://github.com/Lone-Coder/letsencrypt-win-simple/wiki

Получение бесплатного SSL сертификата Let’s Encrypt

Обновлено Обновлено:
Опубликовано Опубликовано:

Тематические термины: Let’s Encrypt, CentOS, Ubuntu

Процесс в данной статье описан на примере систем Linux CentOS, Ubuntu (Debian) и Windows. Настройка выполняется в несколько шагов.

Условия получения
Проверка права на домен
    Используя веб-сервер
    С помощью NS
Установка утилиты для запроса сертификата
    Certbot (Linux)
    LetsEncrypt-Win-Simple (Windows)
Получение сертификата вручную
    На Linux
    На Windows
Автоматическое продление
    Linux
    Windows
Получение Wildcard
Полезные команды
Экспорт сертификатов в Windows с закрытым ключом
Let’s Encrypt для Exchange

Возможные ошибки
Читайте также

Условия получения бесплатного сертификата от Let’s Encrypt

Прежде чем начать, необходимо знать о некоторых нюансах получения сертификата Let’s Encrypt:

  • При запросе выполняется проверка домена. Для этого необходимо:
    1. либо создать TXT-запись в DNS.
    2. либо поднять веб-сервер, далее в его корне создается каталог .well-known, а в нем файл с произвольным названием. После корневой центр отправляет запрос серверу на загрузку данного файла и, в случае успеха, выдает сертификаты для указанного доменного имени.
  • SSL-сертификат выдается на 90 дней, поэтому необходимо по расписанию запускать команду на автоматическое продление ключа. Когда проходит 60 дней после начала использования нового сертификата, центр Let’s Encrypt может выдать новый.
  • Если выполнять запрос для домена 3 уровня и выше, он должен пройти DNS проверку на всех уровнях. Например, домен layer3.layer2.com должен отвечать на запросы как для layer3.layer2.com, так и для layer2.com.

Проверка домена

Как было сказано выше, для получения бесплатного сертификата, Let’s Encrypt должен удостовериться, что мы являемся владельцем домена. Свое право на его владение мы можем подтвердить, создав специальную TXT-запись или настроив веб-сервис, который будет отвечать на запросы.

Настройка веб-сервера

Данный способ немного сложнее для Linux (для Windows все настройки делает утилита автоматически), но позволяет без проблем настроить автоматическое продление.

Запрашивать сертификат Let’s Encrypt проще всего с веб-сервера, на котором запущен сайт для домена. Возможен альтернативный вариант с монтирование сетевой папки, но его рассматривать не будем.

Linux NGINX

Пример простого конфигурационного файла для NGINX:

server {
    listen       80;
    server_name  dmosk.ru;
    root   /usr/share/nginx/html;
}

* где dmosk.ru — домен, для которого работает сайт и для которого мы будем запрашивать сертификат; /usr/share/nginx/html — путь по умолчанию для nginx.

Если сервер уже используется для сайта, в секцию server добавляем:

location ~ /.well-known {
    root /usr/share/nginx/html;
    allow all;
}

* данными строчками мы говорим, что для всех запросов после /.well-known необходимо отдавать скрипты из каталога /usr/share/nginx/htmlallow all предоставляет доступ всем.

При необходимости выполнять проверку и использовать rewrite/return, добавляем что-то подобное:

    …
    location ~ /.well-known {
        root /usr/share/nginx/html;
        allow all;
    }
    if ($uri !~ /.well-known){
        return 301 https://$host$request_uri;
    }

После проверяем конфигурацию и перезапускаем nginx:

nginx -t && nginx -s reload

Linux Apache

Создаем общий конфигурационный файл, в котором пропишем алиас.

а) для CentOS:

vi /etc/httpd/conf.d/lets.conf

б) для Ubuntu / Debian:

vi /etc/apache2/conf-enabled/lets.conf

Со следующим содержимым:

Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/

* в данном примере, запросы для страниц /.well-known/acme-challenge всех сайтов мы переводим в каталог /var/www/html/.well-known/acme-challenge.

Проверяем корректность конфигурационного файла:

apachectl configtest

И перезапускаем apache:

systemctl restart httpd || systemctl restart apache2

Windows

IIS должен отвечать на http-запрос до доменному имени, для которого мы планируем получить сертификат. Также в его настройках мы должны сделать привязку узла, для которого хотим получить сертификат к конкретному сайту. Для этого в консоли управления IIS раскрываем сайты и выбираем нужный нам (в данном примере, он всего один):

Выбираем сайт в консоли IIS

В меню справа кликаем по Привязки:

Переходим к настройкам привязок сайта

Изменяем привязку для имеющийся записи и, при необходимости, добавляем еще:

Настраиваем привязки сайта

Применяем настройки и закрываем консоль управления IIS.

С помощью записи в DNS

Данный метод проще, описанного выше, но он позволит настроить автоматическое продление сертификата только для некоторых DNS, для которых есть отдельные certbot-плагины. Поэтому данный способ, в большинстве случаев, будет удобен для проведения тестов.

У нас должна быть возможность управления записями в DNS. На данном этапе достаточно просто зайти в панель управления DNS и перейти к этапу получения сертификата (ниже по тексту). Если домен новый и был только-что делегирован на DNS, возможно, придется подождать, пока он не станет доступен для всех серверов DNS в глобальной сети.

Установка утилиты для получения сертификата

Certbot для Linux

1) Rocky Linux:

dnf install epel-release

dnf install certbot

2) на CentOS 8:

dnf —enablerepo=powertools install certbot

3) на CentOS 7:

yum install certbot

4) на Ubuntu 16.04 и выше, а также Debian:

apt update

apt install certbot

5) Astra Linux:

Для астры не нашел репозитория установки certbot, но есть решение хоть и не красивое, но рабочее.

Загружаем deb-файлы для debian 10:

wget http://ftp.de.debian.org/debian/pool/main/p/python-certbot/certbot_0.31.0-1+deb10u1_all.deb

wget http://ftp.de.debian.org/debian/pool/main/p/python-certbot/python3-certbot_0.31.0-1+deb10u1_all.deb

Пробуем установить python3-certbot:

dpkg -i python3-certbot_0.31.0-1+deb10u1_all.deb

Если мы получим ошибку зависимостей, например:

dpkg: зависимости пакетов не позволяют настроить пакет python3-certbot:
 python3-certbot зависит от python3-acme (>= 0.29.0~), однако:
  Пакет python3-acme не установлен.
 python3-certbot зависит от python3-configargparse (>= 0.10.0), однако:
  Пакет python3-configargparse не установлен.
 python3-certbot зависит от python3-josepy, однако…

… выполняем команду:

apt install -f

Также мы можем посмотреть список зависимостей командой:

dpkg -I python3-certbot_0.31.0-1+deb10u1_all.deb

Будет выполнена установка зависимостей. После устанавливаем скачанные пакеты:

dpkg -i python3-certbot_0.31.0-1+deb10u1_all.deb

dpkg -i certbot_0.31.0-1+deb10u1_all.deb

6) на CentOS 6 или Ubuntu 14.04 / 12.04:

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

mkdir /opt/certbot

cd /opt/certbot

Загружаем утилиту и разрешаем ее запуск:

wget https://raw.githubusercontent.com/certbot/certbot/7f0fa18c570942238a7de73ed99945c3710408b4/letsencrypt-auto-source/letsencrypt-auto -O /opt/certbot/letsencrypt-auto

chmod a+x ./letsencrypt-auto

Для удобства, делаем симлинк:

ln -s /opt/certbot/letsencrypt-auto /usr/local/sbin/certbot

Запустим команду:

certbot

При первом запуске certbot он автоматически предложит доустановить необходимые зависимости — соглашаемся.

LetsEncrypt-Win-Simple для Windows

На сайте GitHub скачиваем win-acme pluggable для нужной разрядности операционной системы:

Скачиваем win-acme pluggable для Windows x32 или x64

Раcпаковываем скачанный архив в любую папку.

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

Linux

1. Если мы подтверждаем право на домен при помощи веб-сервера, выполняем команду с таким синтаксисом:

certbot certonly —webroot —agree-tos —email <почта администратора домена> —webroot-path <путь до каталога с файлами проверки> -d <домен 1> -d <домен 2> -d …

* где:

  • certonly — запрос нового сертификата;
  • webroot — проверка будет выполняться на основе запроса к корню сайта;
  • agree-tos — даем согласие на лицензионное соглашение;
  • email — почтовый адрес администратора домена;
  • webroot-path — каталог в системе Linux, который является корневым для сайта;
  • d — перечисление доменов, для которых запрашиваем сертификат.

а) Пример запроса при использовании веб-сервера NGINX:

certbot certonly —webroot —agree-tos —email postmaster@dmosk.ru —webroot-path /usr/share/nginx/html/ -d dmosk.ru -d www.dmosk.ru

б) Пример запроса при использовании веб-сервера Apache:

certbot certonly —webroot —agree-tos —email postmaster@dmosk.ru —webroot-path /var/www/html/ -d dmosk.ru -d www.dmosk.ru

После успешного выполнения команды, сертификаты будут созданы в каталоге /etc/letsencrypt/archive/dmosk.ru, а также симлинки на них в каталоге /etc/letsencrypt/live/dmosk.ru. При настройке приложений, стоит указывать пути до симлинков, так как при обновлении файлы в первом каталоге будут меняться, во втором — нет. Публичный ключ будет с именем cert.pem, а приватный — privkey.pem.

2. При подтверждении права на домен с TXT-записью:

certbot certonly —manual —agree-tos —email postmaster@dmosk.ru —preferred-challenges=dns -d dmosk.ru -d www.dmosk.ru

* где:

  • certonly — запрос нового сертификата;
  • manual — проверка домена вручную.
  • preferred-challenges — указывает метод проверки домена.
  • agree-tos — даем согласие на лицензионное соглашение;
  • email — почтовый адрес администратора домена;
  • d — перечисление доменов, для которых запрашиваем сертификат.

На запрос подтверждения отвечаем Y — система выдаст что-то на подобие:

Please deploy a DNS TXT record under the name
_acme-challenge.dmosk.ru with the following value:

W2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm

Once this is deployed,

* Данное сообщение говорит, что мы должны создать TXT-запись _acme-challenge.dmosk.ru со значением W2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm.

Создаем соответствующую запись в панели управления DNS, и в консоли сервера нажимаем Enter для продолжения. Если, как в данном примере, мы запрашиваем сертификат для нескольких узлов, повторяем действия.

Windows

Открываем командную строку от администратора и переходим в распакованный каталог. Например, если архив распакован на диск C, выполняем:

cd C:\win-acme.v2.1.6.773.x64.pluggable

* где 2.1.6.773.x64 — моя версия утилиты.

Запускаем wacs:

wacs.exe

Если запускаем в Powershel, то так:

.\wacs.exe

Утилита формирует бинарный сертификат для Windows, но если мы хотим получить файлы в формате pem, вводим:

wacs.exe —store pemfiles —pemfilespath C:\Certificates

* где pemfilespath — путь до каталога, в котором должны оказаться файлы сертификата.

Откроется меню с выбором действия — вводим N, чтобы создать новый сертификат:

Начальная меню win-acme

Обратите внимание, что в зависимости от версии win-acme, некоторые пункты могут отличаться. Внимательно просмотрите варианты.

Выбираем сайт в IIS, который отвечает на запросы нашего домена (в нашем случае, это единственный Default Web Site, то есть 1):

Выбираем сайт для которого хотим получить сертификат

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

Выбираем все привязки

Вводим email адрес и подтверждаем корректность данных:

Вводим почтовый адрес для уведомлений

Утилита создаст необходимый каталог для проверки домена, запросит проверку, получит сертификат, добавит привязку к сайту по 443 порту с добавлением полученного сертификата и создаст в планировщике задание на автоматическое продление сертификата.

Автоматическое продление

Утилита certbot позволяет выполнить обновление сертификата в автоматическом режиме. В зависимости от операционной системы, инструменты различаются.

Linux

Смотрим полный путь до скрипта certbot:

which certbot

Открываем на редактирование cron и добавляем следующее:

crontab -e

Если система вернет ошибку crontab: command not found, устанавливаем пакет cron и запускаем сервис.

а) Для deb-систем:

apt install cron

systemctl start cron

systemctl enable cron

б) Для rpm-систем:

yum install cronie

systemctl start crond

systemctl enable crond

Прописываем строки в зависимости от нашей системы Linux.

а) для Ubuntu / Debian / Rocky Linux:

0 0 * * 1,4 /usr/bin/certbot renew —noninteractive

б) для CentOS:

0 0 * * 1,4 /bin/certbot renew —noninteractive

* в данном примере проверка и продление сертификата будет выполняться по понедельникам и четвергам (1,4) в 00:00. /usr/bin/certbot или /bin/certbot — путь, который мне выдала команда which certbot.

Команда certbot renew проверяет для всех наших сертификатов срок окончания, и если осталось менее 30 дней, запрашивает новый, сохраняет его в каталоге /etc/letsencrypt/archive/<домен> и обновляет симлинк.

Стоит иметь ввиду, что многие приложения, использующие сертификат, потребуют перезапуска, чтобы перечитать его. Поэтому хорошей идеей будет не просто обновлять сертификат, но и перезапускать сервис, который использует сертификат. Например, для NGINX:

systemctl reload nginx

Однако, нам нужно, чтобы это происходило автоматически. Для этого открываем файл:

vi /etc/letsencrypt/cli.ini

И добавляем строку:


deploy-hook = systemctl reload nginx

Windows

Настройка задания на автоматическое продление создается при получении сертификата. Проверить задание можно в планировщике заданий Windows:

Задание в планировщике Windows для автоматического продления сертификата

Wildcard

С марта 2018 года появилась возможность получить бесплатный сертификат на все поддомены, например, mail.dmosk.ru, test.dmosk.ru, admin.dmosk.ru (*.dmosk.ru).

Особенности получения Wildcard от Let’s Encrypt:

  1. Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
    Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге).
  2. Время действия сертификата также ограничено 3 месяцами.

Certbot

Необходимо, чтобы версия утилиты certbot была 0.22.0 и выше. Проверить текущую версию можно командой:

certbot —version

… если версия ниже, обновляем ее командами:

а) для CentOS / Red Hat:

yum update certbot

б) для Ubuntu / Debian: 

apt update

apt install —only-upgrade certbot

Процесс получения

Процесс очень похож на процесс получения сертификата с подтверждением домена в DNS.

Вводим команду:

certbot certonly —manual —agree-tos —email master@dmosk.ru —server https://acme-v02.api.letsencrypt.org/directory —preferred-challenges=dns -d dmosk.ru -d *.dmosk.ru

* обратим внимание на 2 детали: 1) мы добавили опцию server, чтобы указать, на каком сервере Let’s Encrypt должна проходить проверка DNS; 2) мы получаем сертификат как для *.dmosk.ru, так и самого dmosk.ru, так как первое не включает второго.

… система попросит создать TXT-запись в DNS, который обслуживает наш домен:

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Please deploy a DNS TXT record under the name
_acme-challenge.dmosk.ru with the following value:

DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI

Before continuing, verify the record is deployed.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

* в данном примере система попросила создать TXT-запись _acme-challenge.dmosk.ru со значением DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI.

Заходим в панель управления DNS и создаем нужную запись. Если у нас свой сервер DNS, например, bind, то строка будет такой:

; TXT
_acme-challenge IN      TXT     DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI

Не торопимся нажимать Enter — после настройки DNS нужно немного времени (пару минут), чтобы настройка применилась. Проверить появление записи можно командой с рабочего компьютера:

nslookup -type=txt _acme-challenge.dmosk.ru 8.8.8.8

Как только видим, что настройки применились, нажимаем Enter — если это наш первый запрос Wildcard для данного домена, то система нас попросит создать еще одну запись — повторяем процедуру, создав в DNS вторую запись TXT.

Если все сделали правильно, то увидим:

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dmosk.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dmosk.ru/privkey.pem
   Your cert will expire on 2019-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   «certbot renew»
 — If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let’s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

… сертификат получен.

Полезные команды

Рассмотрим некоторые полезные команды утилиты certbot для работы с сертификатами Let’s Encrypt.

1. Показать группы сертификатов:

certbot certificates

2. Удалить сертификат:

certbot delete dmosk.ru

После получения сертификата мы не сможем экспортировать его с закрытым ключом. Мы можем изменить поведение, открыв файл settings.json в распакованном каталоге win-acme. Находим параметр PrivateKeyExportable и задаем ему значение:

«PrivateKeyExportable»: true,

После обновляем сертификат:

.\wacs.exe —renew —force

Или без обновления сертификата мы можем найти файл .pfx в каталоге: %programdata%\win-acme\$baseuri$\certificates.

Пароль для pfx можно найти в интерактивном меню wacs:

Manage Renewals > Show details

Сертификат Let’s Encrypt для почтового сервера MS Exchange

В комплекте установленного нами LetsEncrypt-Win-Simple для Windows идет скрипт ImportExchange.v2.ps1. Он нужен для импорта сертификата в конфигурацию почтового сервера MS Exchange.

Для начала создадим каталог, куда будет выгружен сертификат. В моем примере я воспользуюсь путем C:\SSL.

Допустим, что адрес подключения к серверу будет exchange.dmosk.ru. Тогда получить сертификат и импортировать его в Exchange можно командой:

wacs.exe —source manual —host exchange.dmosk.ru,autodiscover.dmosk.ru —store centralssl,certificatestore —certificatestore My —acl-fullcontrol «network service,administrators» —centralsslstore «C:\SSL» —installation iis,script  —installationsiteid 1 —script «./Scripts/ImportExchange.v2.ps1» —scriptparameters «‘{CertThumbprint}’ ‘IIS,SMTP,IMAP’ 1 ‘{CacheFile}’ ‘{CachePassword}’ ‘{CertFriendlyName}'»

* данная команда запросит сертификат для узлов exchange.dmosk.ru и autodiscover.dmosk.ru, сохранит нужные файлы в каталоге C:\SSL и импортирует полученные ключи в Microsoft Exchange Server.

Если мы запускаем команду в оболочке PowerShel, клманда должна начинаться с:

.\wacs.exe …

После успешного выполнения команды, заходим в консоль управления сервером, переходим на вкладку управления сертификатами. В списке мы должны увидеть полученную последовательность от Let’s Encrypt. Кликаем по ней и назначаем сертификат для нужных служб Exchange (как правило, SMTP, IIS).

Возможные ошибки

Рассмотрим некоторые ошибки, с которыми мы можем столкнуться.

Missing command line flag or config entry for this setting

Ошибка появляется при попытке обновить сертификат для одного или нескольких доменов.

Причина: при обновлении сертификата, утилита certbot ищет настройки в конфигурационном файле /etc/letsencrypt/renewal/<имя домена>.conf. Если в данном файле не будет определена конфигурация для webroot_map, мы получим данную ошибку.

Решение:

Открываем конфигурационный файл для домена, например:

vi /etc/letsencrypt/renewal/dmoks.ru.conf

Находим опцию webroot_map (как правило, в самом низу). Либо она будет пустой, либо указывать на неправильный путь. Исправляем это:

dmoks.ru = /usr/share/nginx/html

* мы указываем домен и каталог, в котором будет создаваться проверочный файл.

Пробуем обновить сертификат.

ACMEv1 is deprecated and you can no longer get certificates from this endpoint

Ошибка появляется при попытке запросить или обновить сертификат. Полный текст ошибки:

Attempting to renew cert (xxx) from /etc/letsencrypt/renewal/xxx.conf produced an unexpected error: urn:acme:error:serverInternal :: The server experienced an internal error :: ACMEv1 is deprecated and you can no longer get certificates from this endpoint. Please use the ACMEv2 endpoint, you may need to update your ACME client software to do so. Visit https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430/27 for more information.. Skipping.

Причина: утилита на компьютере устарела. Она пытается использовать API-портал ACMEv1, который больше не поддерживается.

Решение: обновляем утилиту certbot.

а) Для Ubuntu/Debian:

apt update

apt —only-upgrade install certbot

б) Для Rocky Linux/CentOS:

yum update certbot

Читайте также

Другие полезные материалы:

1. Примеры редиректов в NGINX.

2. Настройка Apache + SSL для работы сайта по HTTPS.

This guide will show you how to create your first Let’s Encrypt certificate for Apache running on Windows. Later guides will show you how to improve automatic renewal by automatically restarting Apache and how to add additional features such as a secure FTP server using the same certificate.

Download Win-ACME (WACS) – Formerly Known as letsencrypt-win-simple

The latest version of WACS at the time of writing is 2.1.14.1 and that is the version I’ll be using but you should start with the newest available. There are a number of download variants I’ll be using win-acme.v2.1.14.996.x64.pluggable.zip. Unzip the package to a folder that you won’t ever move and you have write access to e.g “c:\wacs”.

Obtain a Certificate

You have the choice of either obtaining a live or test certificate. Getting a test certificate the first time around is a good idea because there are some strict rate limits on the live servers (there are rate limits on the test servers too but they are much more generous). To get a test certificate open an administrator command prompt and enter the directory where you’ve unpacked WACS:

.\wacs.exe --test --verbose

If you want a live certificate just leave off the –test flag. The –verbose flag isn’t necessary but it’s useful to see what is going on the first few times though and doesn’t create all that much extra information. Note that the settings for the endpoints that Win-acme application talks to are defined in the settings.json file. Enter M at the prompt to create a certificate with full options, this is needed to active the PEM Plugin to create the PEM files that Apache uses.

Choose manual input for (option 2) for how to specify the list of domain names. Enter the domain name you want to create a certificate for. Just hit enter for the friendly name.

In order to get a certificate you need to prove that you own the domain the certificate will be created for. A DNS entry can be used but this doesn’t allow for automatic renewals since the verification needs to be carried out for each renewal and it’s different each time. I’ll select option 1 which will cause a folder to be created in the root of the website. It will ask you for the path that it should store the file under. Select N when it asks if it should copy the default web.config. Note you can’t use the from memory option (option number 2) with Apache as it doesn’t support the side by side serving of files that Win-acme can provide (IIS does apparently).

Next you need to specify what type of key you want to create. Choose option 2 for an RSA key.

Since we want to create a certificate for Apache we need to now select option 2 to create a PEM encoded file. You will then be asked where you want to store the file. Select an appropriate secure location on disk. Then choose option 5 to select no additional storage steps.

You are now asked what should happen after the certificate has been saved. For now we’ll choose option 4, no additional steps but see below for how to make Win-acme restart Apache on renewal.

The first time around Win-acme will then ask you to accept the terms of service. Press N to prevent the PDF opening. Enter your email address to be notified of any problems.

Win-acme will then attempt to create a folder called “.well-known” in the root of your website which is used to prove you own the domain. It will ask if you want to try and browse this proof in your default browser, select N. If you are having trouble with validation browsing this file can be a quick way of proving it’s reachable from the outside world.

If the remote certification servers can access your domain ownership proof the certificate will be created and you’ll be be asked if you want to install it (save it in this case). Choose Y. Win-acme will then save the PEM files to your chosen location and remove the .well-known directory.

You’ll now be asked if you want to automatically renew with these setting, choose Y. When asked if the task should run with a specific user select Y as it needs to run under an account with administrator permissions. You can change the settings for this task later as you would for any other task.

The certificate is now created and the automatic renewal task in place. You can quit the Win-acme application from the main menu.

Configure Apache to Use the Certificates

Open httpd.conf and uncomment the following lines (note, they aren’t all found together in the config file) and then restart Apache:

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

The first one loads the SSL module which is required for secure connections. The last one loads the virtual host that handles the SSL site. I’m not entirely sure what the middle one does, it’s something to do with secure sessions. If you forget to uncomment the middle one you get the cryptic  error message:

AH00526: Syntax error on line 93 of C:/somepath/Apache24/conf/extra/httpd-ssl.conf:     .

You now need to make some changes in httpd-ssl.conf. Start by defining a CERTROOT variable at the top of the file. We do this because we aren’t storing our PEM files in the default location under the server root. Then within the virtual host update the shown settings to point at the key and the correct document root. Note that I have a DOCROOT variable set up in my httpd.conf file that points to a non-standard location for my website. Note the SSLCertificateFile points at the chain file and the SSLCertificateKeyFile points at the key file.

Define CERTROOT "path-to-certs"
....
<VirtualHost *:443>
    ServerName www.example.com
    DocumentRoot "${DOCROOT}/mywebsiteroot"
....
    SSLEngine on
    SSLCertificateFile "${CERTROOT}/www.example.com-chain.pem"
    SSLCertificateKeyFile "${CERTROOT}/www.example.com-key.pem"
</VirtualHost>

You should now be able to access your site using HTTPS, since this is a certificate with a fake root (well, it’s a real root it’s just not trusted) the browser will issue a warning but everything else should work correctly.

Manual and Forced Certificate Renewal

When you interactively acquired the certificate one of the options was to install a job to automatically renew the certificate as shown below:

[–test] Do you want to automatically renew this certificate? (y*/n) – yes

[INFO] Adding Task Scheduler entry with the following settings
[INFO] – Name win-acme renew (acme-staging-v02.api.letsencrypt.org)
[INFO] – Path C:\somepath\wacs
[INFO] – Command wacs.exe –renew –baseuri “https://acme-staging-v02.api.letsencrypt.org/”
[INFO] – Start at 09:00:00
[INFO] – Time limit 02:00:00

This will create a job in the Windows Task Scheduler called “win-acme renew…” which, by default, will run at 9AM every day. The command it will run will be something like this:

wacs.exe --renew --baseuri "https://acme-staging-v02.api.letsencrypt.org/"

Note that on a live system it either won’t specify the baseuri or it will point a the live servers, here it is pointing at the test servers.

If you want to manually renew the certificate you can just run the above command at a administrator command prompt. If you want to force the renewal you need to add the –force option, this will cause the certificate to renew even if it’s not at or past the renewal date.

wacs.exe --renew --force --baseuri "https://acme-staging-v02.api.letsencrypt.org/"

The results of this command look like this:

Apache won’t pick up the new certificate until it it restarted, this is something I’ll address in a later post. After a quick restart though you should find that the browser now gets a different certificate to the one it had before (check the certificate thumbprint).

Note, after my first automated certificate refresh I checked the certificate in the browser and to my dismay it reported the old certificate even though Apache was apparently running with the new certificate. I tried restarting Apache but the browser still reported the old certificate. Eventually I tried a Shift-F5 refresh in the browser and wouldn’t you know it the new certificate appeared. It seem the browser (well Chrome at least) will cache a valid certificate.

Automatically Restarting Apache on Certificate Renewal

As mentioned above, Apache won’t automatically pick up a new certificate when it’s renewed it requires a restart. Fortunately Win-acme has the ability to perform this function by letting you run a script after the certificate has been renewed.

Start by creating a folder for certificate scripts, I usually make it peer of the folders that contain my certificates. In there create a file called “ApacheRestart.bat” and add just the following line:

net stop "Apache2.4" & sc start "Apache2.4"

Next, on the step where the win-acme ask you what it should do after the certificate is created rather than choosing option 4 for no additional steps choose option 3 to specify a script to run. Enter the full path to the ApacheRestart.bat script you created and hit enter. Win-acme will then ask what parameters you want to pass to this script and in this case we don’t need any so just hit enter again.

Win-acme now asks if you want to add another installation step, select option 4 for no additional installation steps. Note, if you are adding this step after you’ve already created a certificate then you’ll be asked if you want to overwrite the existing certificate, select Y.

At the end of the certificate creation process you’ll now see the restart script run.

See Also

  • https://letsencrypt.org/ – The Let’s Encrypt site
  • https://github.com/PKISharp/win-acme – WACS Site (Wiki Home)
  • https://community.letsencrypt.org/t/letsencrypt-on-windows-server/27983 – talks about securing Tomcat servers behind Apache

Letsencrypt — это бесплатный сервис, предоставляющий SSL-сертификаты для защиты веб-сайтов. Установка и настройка сертификата может быть сложной задачей, особенно для веб-серверов на Windows с использованием Apache. В этой статье мы рассмотрим все необходимые шаги, чтобы успешно установить и настроить Letsencrypt для вашего веб-сайта на Windows Apache.

Для начала, вам потребуется скачать и установить клиент Letsencrypt на ваш сервер. Существует несколько вариантов клиентов, но мы рекомендуем использовать Certbot, так как это официальный клиент Letsencrypt и он хорошо поддерживается сообществом. Вы можете скачать Certbot с официального сайта Letsencrypt.

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

Далее, вы должны настроить Apache для работы с Certbot и Letsencrypt. Вам нужно будет создать новую директиву ‘‘ в конфигурационном файле Apache и указать доменное имя вашего веб-сайта, а также путь к каталогу, где будут храниться ключи и сертификаты.

После настройки Apache, вы должны запросить новый сертификат у Letsencrypt. Выполните команду Certbot, указав свое доменное имя и путь к вашей конфигурации Apache. Certbot отправит запрос на подтверждение владения доменом и, если все пройдет успешно, получит и установит новый сертификат на вашем сервере.

Содержание

  1. Установка Letsencrypt на Windows Apache: пошаговое руководство
  2. Знакомство с Letsencrypt и Apache
  3. Установка и настройка Apache на Windows
  4. Регистрация и установка Letsencrypt
  5. Генерация и установка SSL-сертификата
  6. Настройка автоматического обновления сертификата

Установка Letsencrypt на Windows Apache: пошаговое руководство

Шаг 1: Проверка требований

Перед установкой Letsencrypt на Windows Apache, убедитесь, что ваш сервер отвечает следующим требованиям:

  1. Windows операционная система, поддерживающая Apache сервер.
  2. Установленный и настроенный Apache сервер для Windows.
  3. Доменное имя, которое вы хотите защитить сертификатом Letsencrypt. Убедитесь, что ваш сервер доступен из интернета по этому доменному имени.
  4. Установленный и настроенный OpenSSL для Windows.

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

Шаг 2: Установка Certbot

1. Скачайте и установите Certbot для Windows с официального сайта.

2. Запустите установщик Certbot и следуйте его инструкциям для завершения установки.

Шаг 3: Генерация сертификата Letsencrypt

1. Откройте командную строку в Windows и перейдите в каталог, где установлен Certbot.

2. В командной строке введите следующую команду, чтобы сгенерировать сертификат Letsencrypt:

certbot certonly --webroot -w [DOCUMENT_ROOT] -d [YOUR_DOMAIN]

Замените [DOCUMENT_ROOT] путем к корневому каталогу вашего веб-сайта и [YOUR_DOMAIN] вашим доменным именем.

3. Следуйте инструкциям Certbot для создания временного файла на вашем веб-сайте, чтобы подтвердить, что вы владеете доменным именем.

4. После успешной проверки ваш сертификат Letsencrypt будет сгенерирован и сохранен на вашем компьютере в указанном месте.

Шаг 4: Настройка Apache для использования сертификата Letsencrypt

1. Откройте файл конфигурации вашего Apache сервера. Обычно он называется httpd.conf и находится в каталоге conf вашего Apache сервера.

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

SSLEngine on
SSLCertificateFile [PATH_TO_LETSENCRYPT_CERT]
SSLCertificateKeyFile [PATH_TO_LETSENCRYPT_KEY]

Замените [PATH_TO_LETSENCRYPT_CERT] путем к сгенерированному сертификату Letsencrypt и [PATH_TO_LETSENCRYPT_KEY] путем к вашему закрытому ключу Letsencrypt.

3. Сохраните и закройте файл конфигурации Apache.

Шаг 5: Перезагрузите Apache сервер

1. Откройте командную строку в Windows и введите следующую команду, чтобы перезагрузить Apache сервер:

httpd -k restart

2. Проверьте, что ваш Apache сервер успешно перезапустился без ошибок.

Шаг 6: Проверка работы сертификата Letsencrypt

1. Откройте веб-браузер и перейдите по вашему доменному имени с использованием HTTPS протокола (например, https://www.yourdomain.com).

2. Убедитесь, что веб-браузер показывает защищенное соединение и не показывает предупреждения о недоверенном сертификате.

Примечание: Если у вас возникли проблемы с установкой или настройкой Letsencrypt на Windows Apache, рекомендуется обратиться за помощью к компетентному специалисту или обратиться к сообществу Letsencrypt для получения поддержки.

Знакомство с Letsencrypt и Apache

Apache – это один из самых популярных веб-серверов, который может быть использован для хостинга веб-сайтов, включая те, которые требуют HTTPS.

Установка Letsencrypt и настройка Apache на Windows позволяют использовать бесплатные сертификаты Letsencrypt для обеспечения безопасной передачи данных через HTTPS на сервере Apache.

Для установки Letsencrypt и настройки Apache на Windows, вам потребуется выполнить несколько шагов:

1. Установка Certbot Установите Certbot, инструмент Letsencrypt, который позволяет автоматически получать и обновлять сертификаты.
2. Генерация сертификата Сгенерируйте SSL-сертификат для вашего домена с помощью Certbot.
3. Настройка Apache Настройте веб-сервер Apache для использования полученного сертификата.
4. Автоматическое обновление Настройте автоматическое обновление сертификата, чтобы он оставался действительным.

Эти шаги позволят вам установить бесплатный сертификат Letsencrypt и настроить веб-сервер Apache для использования HTTPS. Таким образом, вы сможете защитить данные пользователей и повысить доверие к вашему веб-сайту.

Установка и настройка Apache на Windows

Шаг 1: Скачайте последнюю версию Apache HTTP Server с официального сайта. Выберите пакет для Windows и загрузите его на свой компьютер.

Шаг 2: Запустите загруженный файл и следуйте инструкциям установщика. Выберите директорию, в которую вы хотите установить Apache.

Шаг 3: После завершения установки запустите Apache, открыв командную строку или PowerShell и выполните команду httpd.exe.

Шаг 4: Проверьте работу Apache, открыв веб-браузер и введите в адресной строке http://localhost/. Если вы увидите страницу приветствия Apache, значит, установка прошла успешно.

Шаг 5: Настройте конфигурацию Apache, открыв файл httpd.conf в текстовом редакторе. Этот файл расположен в директории, в которую вы установили Apache.

Шаг 6: Внесите необходимые изменения в файл httpd.conf в соответствии с вашими требованиями. Настройки в этом файле позволяют управлять различными аспектами работы веб-сервера, такими как порт, директории, модули и другие.

Шаг 7: Перезапустите Apache, чтобы применить внесенные изменения, используя команду httpd.exe -k restart в командной строке или PowerShell.

Теперь у вас установлен и настроен Apache на вашей операционной системе Windows. Вы можете начать разрабатывать и размещать веб-сайты на своем локальном сервере.

Регистрация и установка Letsencrypt

Шаг 1. Перейдите на официальный сайт Letsencrypt по адресу https://letsencrypt.org/.

Шаг 2. Нажмите на кнопку «Get Started» или «Начать».

Шаг 3. Выберите раздел «Certbot», который является официальным клиентом Letsencrypt для автоматической генерации и установки SSL-сертификатов на сервере.

Шаг 4. Выберите операционную систему, на которой работает ваш сервер. Для Windows выберите «Windows» и нажмите на кнопку «Certbot-auto».

Шаг 5. Скачайте архив с Certbot и распакуйте его на вашем сервере.

Шаг 6. Откройте командную строку и перейдите в директорию с распакованным Certbot.

Шаг 7. В командной строке выполните следующую команду для регистрации нового аккаунта:

certbot register

Шаг 8. Введите ваш электронный адрес, который будет использоваться для уведомлений о состоянии сертификатов.

Шаг 9. Для получения SSL-сертификата используйте следующую команду:

certbot certonly —apache

Шаг 10. Введите домены, для которых требуется получить SSL-сертификат. Можно указать максимум 100 доменов, разделяя их запятыми.

Шаг 11. Следуйте инструкциям Certbot для подтверждения владения доменом. Это может быть автоматическая проверка через документы на сервере или ручное подтверждение через DNS-записи.

Шаг 12. После успешного подтверждения Certbot создаст SSL-сертификаты и сохранит их в указанной вами директории.

Шаг 13. Теперь вам необходимо настроить вашу веб-сервер на работу с новыми SSL-сертификатами. Для этого откройте конфигурационный файл вашего сервера и добавьте соответствующие настройки.

Шаг 14. Перезапустите сервер для применения новых настроек и проверьте работу SSL-сертификатов.

Генерация и установка SSL-сертификата

1. Установите Certbot, перейдя на официальный сайт Certbot. На сайте вы найдете инструкции по установке Certbot на вашу конкретную операционную систему и веб-сервер.

2. После установки Certbot на ваш сервер, выполните следующую команду, чтобы получить SSL-сертификат:

  • Для Apache:
  • certbot --apache

  • Для Apache с специфичным доменным именем:
  • certbot --apache -d example.com

  • Для нескольких доменных имен:
  • certbot --apache -d example.com -d www.example.com

3. Certbot выполнит несколько шагов автоматически:

  1. Сгенерирует и сохранит приватный ключ для SSL-сертификата.
  2. Взаимодействует с сервером Let’s Encrypt для подтверждения вашего домена.
  3. Сгенерирует SSL-сертификат и сохранит его на вашем сервере.
  4. Настроит веб-сервер Apache для использования полученного SSL-сертификата.

4. После успешной установки SSL-сертификата, может потребоваться настроить ваш веб-сервер для автоматического обновления SSL-сертификата при его истечении срока действия. Это можно сделать, добавив задачу в планировщик задач или использовав Certbot Renewal.

Теперь ваш веб-сервер настроен для использования SSL-сертификата от Let’s Encrypt. Все ваши данные передаются по защищенному протоколу HTTPS, что обеспечивает безопасность вашего веб-сайта и защиту передаваемых данных.

Настройка автоматического обновления сертификата

После успешной установки и настройки сертификата Letsencrypt на сервере Windows Apache, необходимо настроить автоматическое обновление сертификата, чтобы быть уверенным в его актуальности и безопасности вашего сайта. Для этого следуйте инструкциям ниже:

Шаг 1: Откройте командную строку с правами администратора.

Шаг 2: Введите следующую команду, чтобы установить планировщик задач:

schtasks /create /tn "letsencrypt renew" /tr "C:\Path\To\letsencrypt\letsencrypt.exe renew" /sc weekly /d MON /st 00:00 /ru SYSTEM

Примечание: Замените C:\Path\To\letsencrypt\letsencrypt.exe на путь к исполняемому файлу Letsencrypt на вашем сервере.

Шаг 3: Введите следующую команду, чтобы настроить обновление сертификата каждую неделю:

schtasks /change /tn "letsencrypt renew" /sc weekly /d MON

Примечание: Если вы хотите обновлять сертификат ежедневно, замените /sc weekly /d MON на /sc daily /st 00:00.

Шаг 4: Введите следующую команду, чтобы запустить планировщик задач:

schtasks /run /tn "letsencrypt renew"

Примечание: Эта команда позволяет вам запустить обновление сертификата вручную. Выполните эту команду, чтобы проверить, работает ли автоматическое обновление.

Сертификат Letsencrypt теперь будет автоматически обновляться в соответствии с настройками планировщика задач. Убедитесь, что ваш сервер имеет доступ к Интернету и может подключаться к серверам Letsencrypt для успешного обновления сертификата.

Introduction

In this article, we will help you to configure a Let’s Encrypt client on Windows Server 2019 and how you can enable and configure your SSL certificate on your Apache webserver.

Prerequisites

  • VPS or Dedicated Server with Windows Server 2019 installed.
  • You must be logged in via Remote Desktop Protocol as an administrative user.
  • Installed Apache 2.4 in C:\Apache24
  • A domain name pointed towards your VPS or Dedicated server. In this tutorial, we will use s30426.hosted-by-snel.com. Replace all occurrences of s30426.hosted-by-snel.com with your actual domain name.

Step 1: Log in with RDP into Windows Server 2019

Connect to your server with the login credentials which you can find in your client area.

Step 2: Download Let’s Encrypt client

We will use Win-acme for issuing an SSL certificate. Visit the website of Win-acme to download the latest version. Extract the download zip to C:\win-acme

Step 3: Run Win-acme Let’s Encrypt client

Start wacs with administrator permission. If Microsoft Defender SmartScreen is enabled it will ask your permission.

win smartscreen

Click on More info . A new button will appear and click on Run anyway.

run anyway

Win-acme will start

win-acme

Step 4: Create a batch file

Create the following filename C:\win-acme\Scripts\RestartApache.bat

net stop "Apache2.4" & sc start "Apache2.4"

Step 5: Issue certificate

Enter M in the command prompt en hit enter.

win-acme m

Choose manual input in our situation, it’s option 1. 

Manual-input can be a different number in your setup

win-acme 1

Enter the domain name where you want to issue a certificate. In our article it’s: s30426.hosted-by-snel.com

s30426

It will ask you for a friendly name, we leave it blank. Hit enter to continue.

friendlyname

It will ask how you want to verify that you are the owner of that domain. In our case, s30426.hosted-by-snel.com is already pointing to our server and is active in Apache. In our setup, we choose option 1 [http-01] Serve verification files on (network) path.

verify domain

Since we have chosen network path it will ask us for a path, in our case its C:\Apache24\htdocs

network path

It will ask you if you want to copy the default web.config before validation. We choose N

copywebconfig

It will what type of private key we want. We will choose option 2 RSA key as a private key.

privatekeyrsa

Since we want to use the SSL certificate on our Apache webserver we will choose option 2 PEM encoded files (Apache, nginx, etc.) and hit enter. Once PEM is selected it will ask you where to store those files. In our case it’s C:\Apache24\conf.

apacheconf

We do not want to store it another way and we select option 3 No (additional) store steps and hit enter.

nostore

Once the new certificate is saved we do want to perform an extra step and choose for option 3 Start external script or program. It will ask the script path that you want to run after renewal C:\win-acme\Scripts\RestartApache.bat

restartbat

Enter the following {StoreType} {StorePath} {RenewalId}. Once this is entered it will ask where you want to receive notification and fill in your email address.

default

It will ask you if you want to open in default application choose for N and accept the terms with Y.

agreeterms

Run the task under a specific user, since it requires a user with administrator permissions.

permissionadmin

Step 6: Enable SSL if it’s not enabled yet

If SSL is already enabled for your Apache webserver you can continue to step 7. Open the httpd configuration file C:/Apache24/conf/httpd.conf.  In the httpd.conf file changes the following lines by removing the comment sign #:

Loadmodule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf

Do an Apache configuration file check. Start command prompt with administration permission. Run de following command:

cd C:\Apache24\bin 
httpd.exe -t

The output should give Syntax OK if there is no error in the configuration file.

Step 7: Configure SSL for the newly issued certificate.

Open the httpd-ssl configuration file located here C:/Apache24/conf/extra/httpd-ssl.conf.

Change the SSLCertificateFile:

SSLCertificateFile "${SRVROOT}/conf/server.crt"

with

SSLCertificateFile "${SRVROOT}/conf/s30426.hosted-by-snel.com-chain.pem"

Change the SSLCertificateKeyFile :

SSLCertificateKeyFile "${SRVROOT}/conf/server.key"

with

SSLCertificateKeyFile "${SRVROOT}/conf/s30426.hosted-by-snel.com-key.pem"

Change the SSLCipherSuite:

SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES

with

SSLCipherSuite ECDH+AESGCM256:ECDH+CHACHA20:DH+AESGCM256:ECDH+AES256:DH+AES256:!aNULL:!MD5:!DSS
SSLProxyCipherSuite ECDH+AESGCM256:ECDH+CHACHA20:DH+AESGCM256:ECDH+AES256:DH+AES256:!aNULL:!MD5:!DSS

Change SSL protocol

SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3

With

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol all -SSLv3 -TLSv1 -TLSv1.1

Change VirtualHost

#   General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs"
ServerName www.example.com:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

With

#   General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs"
ServerName s30426.hosted-by-snel.com:443
ServerAdmin <[email protected]>
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

Save the changes. Re-check the Apache configuration on the command prompt. Start command prompt with administration permission. Run de following command:

cd C:/Apache24/bin
httpd.exe -t

If everything is OK. Restart Apache webserver via command prompt. Start command prompt with administration permission. Run de following command:

cd C:/Apache24/bin
httpd -k restart

Step 8: Verify that SSL is working

Visit the website on your browser: https://s30426.hosted-by-snel.com

Conclusion

In this article, we described how you can install a Let’s Encrypt client a configure Apache webserver on Windows to use the issues SSL certificate.

  • Letasoft sound booster для windows 10
  • Lenovo z575 драйвера windows 10
  • Lenovo z570 не включается wifi windows 10
  • Lenovo z570 lenovo energy management windows 10
  • Lenovo z570 drivers windows 10