как установить ssl сертификат на сервер windows
Как установить SSL-сертификат на Windows Server
Если вам необходимо установить сертификат на Windows Server, давайте разберёмся, как это сделать. Если вы ещё не получили сертификат, то можете ознакомиться с инструкцией «Как сгенерировать запрос на SSL-сертификат в Windows Server».
Если файлы сертификата у вас на руках, приступаем к установке.
Добавляем сертификат на сервер
Для того чтобы загрузить сертификат, перейдите в Диспетчер серверов ( Пуск — Администрирование — Диспетчер серверов ).
Далее способ установки зависит от того, где вы генерировали CSR:
1) Если Вы генерировали CSR на том же сервере, куда устанавливаете сертификат.
Подключаем SSL-сертификат на домен
В открывшемся окне нажимаем Добавить и заполняем информацию:
Имя узла — доменное имя.
IP address — IP-адрес сайта (для сертификата следует выделять отдельный IP для каждого сайта)
В поле SSL-сертификаты указываем созданный сертификат.
Как установить сертификат на WIndows Server (IIS 7.x)
Как установить сертификат на WIndows Server (IIS 7.x)
Добавляем сертификат на сервер.
Для того, чтобы загрузить сертификат перейдите в Диспетчер серверов ( “Пуск” — “Администрирование” — “Диспетчер серверов” ).
Затем откройте “Диспетчер служб IIS” (“Средства” — “Диспетчер служб IIS”) и кликните на “Сертификаты сервера”.
Далее способ установки зависит от того где вы генерировали CSR:
Сертификат загружен. В обоих вариантах, после добавления файла, сертификат будет доступен в разделе “Сертификаты сервера”. Осталось настроить доменное имя.
Подключение SSL-сертификата на домен.
Переходим в настройки сайта. В меню “Подключения” выберете сайт и кликните на пункт “Привязки”.
В открывшемся окне нажимаем “Добавить” и заполняем информацию:
Как установить SSL сертификат Let’s Encrypt на Windows Server (IIS)
Оглавление
Что за сертификат Let’s Encrypt?
Куда и зачем мне нужен был SSL сертификат
Начнём с того, что SSL (Secure Sockets Layer) сертификат защищает данные пользователей, которые передаются по сети. Для интеграции с одним из известных маркетплейсов мне нужно было использовать web-сервис 1С и на тестовом Windows Server, на котором был развёрнут тестовый сервер 1С, был поднят IIS (internet Information Services). Веб сервер Windows.
В требованиях обмена маркетплейса было указано что обмен должен идти через защищенный HTTPS протокол. И не через IP адрес, а через домен. Ниже расскажу последовательность моих действий:
Установку Windows Server и сервера 1С я тут рассматривать не буду, так как. Во-первых Windows Server установка мало чем отличается от установки обычной десктопной винды, а по 1С можно почитать эту статью. Во-вторых я хочу рассказать именно про то как установить SSL сертификат от Let’s Encrypt на Windows Server IIS. Начнём!
Установка SSL сертификата на IIS
Скачиваем программу LetsEncrypt-Win-Simple
Для того чтобы выпустить сертификат на Windows Server IIS на необходима программа LetsEncrypt-Win-Simple. Качаем её на официальном сайте www.win-acme.com
Скачиваем и распаковываем архив в директорию на жёстком диске. Для выпуска сертификата нам нужно будет запустить из каталога файл wacs.exe. Но это чуть позже.
Если мы сейчас попытаемся выпустить сертификат, то получим предупреждение
Добавим веб-сайт в Диспетчере служб IIS
Добавляем записи в Диспетчере DNS
Открываем Диспетчер DNS через команду выполнить WIN + R (или любым удобным для вас способом 😉 )
Выбираем сервер, правой кнопкой по каталогу сайтов и нажимаем Добавить веб-сайт. Указываем каталог для нового сайта. Дальше нам нужно создать псевдоним CNAME в зоне прямого просмотра (forward lookup zones).
Так как домен у меня находится у хостинг провайдера, то я на всякий случай указал в Диспетчере DNS его NS сервера. В свою очередь у хостинг провайдера прописываем A запись с нашим выделенным IP адресом. Позже мы настроим правило для того чтобы входящее соединение перебрасывало на нужный сервер.
Выпуск SSL сертификата Let’s Encrypt
И так. У нас есть 1С сервер с расширением веб-сервера, добавили DNS и CNAME записи, указали A запись. Теперь запускаем WACS.EXE и вводим букву N для инициирования выпуска сертификата. Далее выбираем на какой домен будем выпускать сертификат, даём пару соглашений (y) и вводим email адрес, куда нам будут приходить уведомления в случае каких-либо проблем (Enter email for notifications about problems and abuse).
В принципе всё готово. По части сертификата. Программа автоматически добавляет привязку 443 SSL порта к сайту в Диспетчере служб IIS и в Планировщике заданий таск на автоматический перевыпуск сертификата, но можно в этом убедиться самостоятельно
Настройка шлюза (роутера)
В моём случае это был Kerio Control. Я добавил правило для всех входящих по HTTPS (443 порт) и по HTTP (80 порт) переадресацию на нужный сервер IIS с SSL сертификатом
Apache SSL: переход Apache на HTTPS
Нужен ли HTTPS?
Протокол HTTPS позволяет передавать данные между сайтом и пользователем в зашифрованном виде, то есть посторонние лица не могут увидеть содержимое передаваемых данных и изменить их.
Веб-сервер Apache поддерживает работу HTTPS. Для настройки HTTPS на Apache нужен SSL сертификат. Точнее говоря, «SSL сертификат» включает в себя приватный ключ и публичный ключ (сертификат). Также вместе с SSL ключами дополнительно могут присылаться сертификаты центра сертификации, корневой сертификат.
Сертификаты SSL
SSL сертификаты можно разделить на два вида: валидные и самоподписанные.
Сертификат SSL можно сгенерировать у себя на компьютере. Причём можно сгенерировать для любого доменного имени. Но к таким сертификатам у веб-браузеров нет доверия. Поэтому если открыть сайт, защищённый таким сертификатом, то веб-браузер напишет ошибку, что сертификат получен из ненадёжного источника и либо запретит открывать этот сайт, либо предложит перейти на сайт на ваш страх и риск. Это так называемые «самоподписанные сертификаты». Чтобы браузер не выдавал ошибку о ненадёжного сертификате, его нужно добавить в список доверенных. Такие сертификаты подойдут для тестирования веб-сервера и обучению настройки веб-сервера для работы с SSL и HTTPS. Ещё такой сертификат можно использовать на сайте, к которому имеет доступ ограниченный круг лиц (несколько человек) — например, для сайтов в локальной сети. В этом случае они все могут добавить сертификат в доверенные.
Для реального сайта такой сертификат не подойдёт.
Для рабочего окружения нужен валидный сертификат, его можно получить двумя способами:
1) получить тестовый сертификат на 3 месяца (затем его можно продлить)
2) купить сертификат — в этом случае он действует от года и более
Валидный сертификат отличается от самоподписанного тем, что сторонний сервис удостоверяет подлинность этого сертификата. Собственно, оплачивается именно эта услуга удостоверения, а не выдача сертификата.
Данная статья посвящена вопросу, как настроить Apache в Windows для работы с протоколом HTTPS, будет показано, как подключить SSL сертификаты к Apache в Windows. Поэтому для целей тестирования и обучения нам хватит самоподписанного сертификата.
Как сгенерировать SSL сертификат в Windows
У меня веб-сервер установлен в папку C:\Server\bin\Apache24, поэтому если у вас он в другой директории, то подправьте команды под свои условия.
Откройте командную строку Windows (Win+x, далее выберите «Windows PowerShell (администратор)»). В командной строке введите команды:
При вводе последней команды появятся запросы на английском языке. Ниже следует их перевод.
Вас попросят ввести информацию, которая будет включена в запрос вашего сертификата. То, что вы будете вводить, называется Distinguished Name или DN. Там всего несколько полей, которые можно оставить пустыми. В некоторых полях будут значения по умолчанию. Если вы введёте ‘.’, то поле будет оставлено пустым.
Двухбуквенное имя страны (двухбуквенный код)
Название штата или провинции/области (полное имя)
Название населённого пункта (например, города)
Подразделение организации (т.е. отдел)
Общее имя (например, FQDN сервера или ВАШЕ имя). Это самая важная часть — здесь нужно ввести доменное имя. Можете ввести localhost.
Теперь выполните команду:
В результате в каталоге C:\Server\bin\Apache24\bin\ должны появиться три новых файла:
Из них нам понадобятся только два:
Как в Windows для Apache подключить SSL сертификаты
При использовании сертификатов для настройки реального веб-сайта, удобнее создать виртуальный хост с примерно следующими настройками:
Для настройки использования SSL на локальном веб-сервере Apache в Windows следуйте инструкции ниже (в моём случае веб-сервер установлен по этой инструкции, если у вас не так, то отредактируйте пути до файлов).
В каталоге C:\Server\ создайте новую папку certs и переместите туда файлы localhost.key и localhost.crt.
В директории C:\Server\bin\Apache24\conf\ откройте текстовым редактором файл httpd.conf. В самый низ добавьте туда строки:
Обратите внимание, что вам может понадобиться отредактировать следующие директивы
После этого сохраните изменения, закройте файл и перезапустите веб-сервер.
Для проверки сделанных изменений, перейдите по адресу https://localhost/ (протокол HTTPS). Поскольку сертификат является самоподписанным, то появится такое сообщение:
К самоподписанным сертификатам нет доверия и эту ошибку нельзя убрать без добавления таких сертификатов в доверенные. Для перехода нажмите «Всё равно продолжить».
Как уже было сказано, валидные сертификаты нужно покупать, либо использовать тестовые. В чём подвох использования тестовых сертификатов? Формально, в какой-то момент их могут перестать выдавать, но, на самом деле, уже сейчас многие сайты годами живут с такими тестовыми сертификатами. На современных хостингах настроено автоматическое подключение и продление таких сертификатов — это просто супер удобно. Обычно на хостингах предусмотрено некоторое количество абсолютно бесплатных SSL сертификатов с автоматическим продлением, но за небольшую плату (10 рублей в месяц), можно подключить тестовые сертификаты для любого количества сайтов. Пример такого хостинга здесь.
Решение проблем
При некоторых условиях может возникнуть следующая ошибка:
Главная подсказка в первой строке: Can’t open C:\Program Files\Common Files\SSL/openssl.cnf for reading, No such file or directory — она означает, что возникла ошибка чтения файла C:\Program Files\Common Files\SSL/openssl.cnf из-за того, что он отсутствует.
Файл openssl.cnf поставляется с самим веб-сервером Apache и находится в папке conf. Поэтому есть несколько вариантов, как исправить эту ошибку. Например, можно создать нужные папки и скопировать туда этот файл. Но можно пойти более простым путём — на время создания сертификатов установить переменную окружения OPENSSL_CONF указав в ней правильный путь до файла.
Также нужно переключиться из PowerShell в обычную командную строку Windows, поскольку иначе переменная окружения почему-то не устанавливается. Допустим, сервер размещён в папке C:\Server\bin\Apache24\bin\, тогда файл openssl.cnf расположен по пути C:\Server\bin\Apache24\conf\openssl.cnf, в этом случае, чтобы исправить ошибку Can’t open C:\Program Files\Common Files\SSL/openssl.cnf for reading, No such file or directory нужно выполнить:
Отредактируйте пути в этих командах в соответствии с вашей структурой папок.
Связанные статьи:
Comments
Статья не помогла. Очень важно приложить к статье openssl.cnf, который по факту должен быть прописан в переменной окружеия OPENSSL_CONF. Толку от такого сертификата нет, т.к приходится добавлять исключение и это ещё в самых лояльных браузерах. Такой сертификат не подписан к домену, что делает его бессмысленным.
Очень важно приложить к статье openssl.cnf,
Этот файл поставляется с веб-сервером. Зачем его здесь прикладывать?
который по факту должен быть прописан в переменной окружения OPENSSL_CONF.
Смотрите внимательнее команды — файл добавляется в переменную окружения. На один раз. Используется тоже один раз.
Толку от такого сертификата нет, т.к приходится добавлять исключение и это ещё в самых лояльных браузерах. Такой сертификат не подписан к домену, что делает его бессмысленным.
Тут половина статьи о валидных и самоподписанных сертификатах. Только вы не понимаете сути. Сертификат не «не подписан к домену». Домен в сертификате указан. Сертификат не подписан сервисом, который уполномочен проверять валидность сертификатов — нет смысла переписывать это из статьи, всё есть.
Чем не помогла? Тем, что браузеры не принимают самоподписанные сертификаты? В этом статья виновата?
Вам никто не запрещает купить валидный сертификат для вашего домена и прописать его настройках веб-сервера. Все веб-браузеры будут его прекрасно принимать.
Эта статья для тех, кто хочет потренироваться, проверить, как настраивать SSL сертификаты в веб-сервере Apache под Windows. Или для тех, кто уже купил себе валидный сертификат.
Обходились как-то раньше без всяких сертификатов, сейчас приходится бегать по всяким хострадарам высунув язык, искать хостинговую компанию с недорогим или бесплатным SSl.
Спасибо за подробную статью!!
Приветствую! Всё верно сказано — видимо, изменения связаны с обновлением сервера. Обновлю статью, чтобы не было проблем у других пользователей.
Громадное спасибо! Такая подробная, но без воды статья! Все сработало! Установил Apache, PHP, Mysql(по этой статье
), SSL (по текущей статье), все связано, все работает. Просто с недавних пор перестали удовлетворять разные сборки web серверов для разработчиков(старые версии продуктов в них зачастую, а при обновлении какого-то компонента перестает работать вся связка в целом). Теперь поставил все с новыми, актальными версиями, сэконоил благодаря вашему труду столько времени, спасибо еще раз!
Ещё было бы здорово обращаться к одному и тому же порту и через http и через https..
Ещё было бы здорово обращаться к одному и тому же порту и через http и через https..
Это в принципе невозможно. Для каждого из протоколов используется виртуальный хост со своими собственными настройками.
Ну то есть на самом деле возможно )) Но тогда нужно делать два хоста и каждый из них будет иметь своё имя и, соответственно, свои настройки. В качестве хостов можно выбрать любые имена, например, site1.loc, site2.loc, site.home и вообще что угодно. Один из этих хостов на 80-м порту будет работать по протоколу HTTP, а другой хост будет настроен на 80-м порту обслуживать протокол HTTPS. Если вы действительно собираетесь этим заморачиваться, я дам вам ссылки.
Добавьте сгенерированный сертификат в доверенные и будет зелёный замочек — но только на том компьютере, где добавили. Ну или сгенерируйте сертификат сервера с помощью корневого сертификата, который был добавлен в доверенные (первый способ проще). Если вы действительно будете этим заморачиваться, я дам вам ссылки.
Других способов получить валидный SSLдля localhost нет. Нужно понимать, что в этом и есть суть, что кто попало не может сгенерировать сертификаты для чего попало. Можно получить (причём даже бесплатно) сертификат для публичного адреса (домена) который принадлежит вам. И подлинность этого сертификата будет удостоверять третья сторона.
Генерация доверенного сертификата происходит следующим образом (пропущены технические детали, такие как генерация ключей, указаны только важные для нас моменты):
Допустим, я хочу сертификат для домена localhost.
На третьем этапе описанного процесса будет затык — третья сторона никак не может зайти на домен localhost, чтобы проверить, что домен действительно принадлежит мне, поскольку это мой локальный домен. У 6 миллиардов людей есть свой собственный localhost, а у некоторых сразу несколько. По этой причине невозможен выпуск валидных сертификатов для локальный имён.
А если бы третья сторона давала сертификаты «на веру» без проверки, или если бы на своём компьютере можно было генерировать валидные сертификаты для любого имени, то это как выпускать замки, которые можно открыть любым ключом или вообще без ключа — не было бы никакого смысла городить этот огород, тогда уж проще вообще без сертификатов, поскольку никакого толка в них бы не было.
Как установить ssl сертификат на сервер windows
(Single Certificate) Как установить SSL сертификат и настроить сервер на использование SSL сертификата.
2 В Windows start menu, наберите Internet Information Services (IIS) Manager и откройте его.
3 В менеджере Internet Information Services (IIS) Manager, в панели слева Connections menu tree нажмите на имя сервер (server name).
4 На основной странице раздела server name (центральная панель), кликните дважды в секции IIS на раздел Server Certificates.
5 На странице раздела Server Certificates page (центральная панель),в меню действия в правой панели (Actions menu),кликнуть на Complete Certificate Request.
6 In the Complete Certificate Request wizard, on the Specify Certificate Authority Response page, do the following and then click OK:
Friendly name: Type a friendly name for the certificate. The friendly name is not part of the certificate; instead, it is used to identify the certificate. We recommend that you add DigiCert and the expiration date to the end of your friendly name, for example: yoursite-digicert-(expiration date). This information helps identify the issuer and expiration date for each certificate. It also helps distinguish multiple certificates with the same domain name.
Select a certificate store In the drop-down list, select Web Hosting. for the new certificate:
7 Now that you’ve successfully installed your SSL certificate, you need to assign the certificate to the appropriate site.
Assign SSL Certificate
8 In Internet Information Services (IIS) Manager, in the Connections menu tree (left pane), expand the name of the server on which the certificate was installed. Then expand Sites and click the site you want to use the SSL certificate to secure.
9 On the website Home page, in the Actions menu (right pane), under Edit Site, click the Bindings… link.
10 In the Site Bindings window, click Add.
11 In the Add Site Bindings window, do the following and then click OK:
Type: In the drop-down list, select https.
IP address: In the drop-down list, select the IP address of the site or select All Unassigned.
Port: Type port 443. The port over which traffic is secure by SSL is port 443.
12 Your SSL certificate is now installed, and the website configured to accept secure connections.
SSL certificate: In the drop-down list, select your new SSL certificate (e.g., yourdomain.com).
(Multiple Certificates) How to install your SSL certificates and configure the server to use them using SNI This instructions explains how to install multiple SSL certificates and assign them using SNI. The process is split into two parts as follows:
Installing and Configuring Your First SSL Certificate
Installing and Configuring All Additional Certificates
Install First SSL Certificate
Do this first set of instructions only once, for the first SSL certificate.
2 In the Windows start menu, type Internet Information Services (IIS) Manager and open it.
3 In Internet Information Services (IIS) Manager, in the Connections menu tree (left pane), locate and click the server name.
4 On the server name Home page (center pane), in the IIS section, double-click Server Certificates.
5 On the Server Certificates page (center pane), in the Actions menu (right pane), click the Complete Certificate Request… link.
6 In the Complete Certificate Request wizard, on the Specify Certificate Authority Response page, do the following and then click OK:
Friendly name: Type a friendly name for the certificate.
The friendly name is not part of the certificate; instead, it is used to identify the certificate.
We recommend that you add DigiCert and the expiration date to the end of your friendly name, for example: yoursite-digicert-(expiration date).
This information helps identify the issuer and expiration date for each certificate. It also helps distinguish multiple certificates with the same domain name.
Select a certificate store In the drop-down list, select Web Hosting. for the new certificate:
7 Now that you’ve successfully installed your SSL certificate, you need to assign the certificate to the appropriate site.
8 In Internet Information Services (IIS) Manager, in the Connections menu tree (left pane), expand the name of the server on which the certificate was installed. Then expand Sites and click the site you want to use the SSL certificate to secure.
9 On the website Home page, in the Actions menu (right pane), under Edit Site, click the Bindings… link.
10 In the Site Bindings window, click Add.
11 In the Add Site Bindings window, do the following and then click OK:
Type: In the drop-down list, select https. IP address: In the drop-down list, select the IP address of the site or select All Unassigned. Port: Type port 443. The port over which traffic is secure by SSL is port 443. SSL certificate: In the drop-down list, select your new SSL certificate (e.g., yourdomain.com).
12 Your first SSL certificate is now installed, and the website configured to accept secure connections. Install Additional SSL Certificates
To install and assign each additional SSL certificate, repeat the steps below, as needed.
2 In the Windows start menu, type Internet Information Services (IIS) Manager and open it.
3 In Internet Information Services (IIS) Manager, in the Connections menu tree (left pane), locate and click the server name.
4 On the server name Home page (center pane), in the IIS section, double-click Server Certificates.
5 On the Server Certificates page (center pane), in the Actions menu (right pane), click the Complete Certificate Request… link.
6 In the Complete Certificate Request wizard, on the Specify Certificate Authority Response page, do the following and then click OK:
certificate authority’s response: (e.g., your_domain_com.cer) that DigiCert sent to you.
Friendly name: Type a friendly name for the certificate.
The friendly name is not part of the certificate; instead, it is used to identify the certificate.
We recommend that you add DigiCert and the expiration date to the end of your friendly name, for example: yoursite-digicert-(expiration date).
This information helps identify the issuer and expiration date for each certificate. It also helps distinguish multiple certificates with the same domain name.
Select a certificate store In the drop-down list, select Web Hosting.
for the new certificate:
7 Now that you’ve successfully installed your SSL certificate, you need to assign the certificate to the appropriate site.
8 In Internet Information Services (IIS) Manager, in the Connections menu tree (left pane), expand the name of the server on which the certificate was installed. Then expand Sites and click the site you want to use the SSL certificate to secure.
9 On the website Home page, in the Actions menu (right pane), under Edit Site, click the Bindings… link.
10 In the Site Bindings window, click Add.
11 In the Add Site Bindings window, do the following and then click OK:
Type: In the drop-down list, select https.
IP address: In the drop-down list, select the IP address of the site or select All Unassigned.
Port: Type port 443. The port over which traffic is secure by SSL is port 443.
Host name: Type the host name that you want to secure.
Require Server After you enter the host name, check this box.
Name Indication: This is required for all additional certificates/sites, after you’ve installed the first certificate and secured the primary site.
SSL certificate: In the drop-down list, select an additional SSL certificate (e.g., yourdomain2.com).
12 You have successfully installed another SSL certificate and configured the website to accept secure connections.