1. Введение
При установке серверной версии Р7-Офис. Корпоративный сервер под Windows раздел HTTPS в Панели управления будет отсутствовать. Но вы все равно сможете переключить портал на протокол HTTPS.
Вы можете создать сертификат, подписанный Центром Сертификации, и переключить портал на протокол HTTPS с помощью одной команды, используя готовый скрипт, который автоматически генерирует сертификат от сервиса letsencrypt.org ↗.
В данной статье объясняется, как это можно сделать. Чтобы установить свой собственный сертификат, пожалуйста, обратитесь к этой статье ↗.
1.1. Что делает скрипт при запуске
- Проверяет права администратора, версию PowerShell и .NET Framework.
- Находит сайт «Р7-Офис. Совместная работа».
- Проверяет и при необходимости исправляет web.config (разрешает .well-known).
- Включает поддержку TLS 1.2 для .NET Framework.
- Выдаёт сертификат через win-acme в режиме manual + webroot.
- Устанавливает сертификат в IIS.
- Создаёт задачу автоматического обновления в Планировщике Windows.
- Включает rewrite-правила HTTP→HTTPS (если они существуют).
- (По умолчанию) применяет шаблон IIS Crypto без автоматической перезагрузки.
2. Подготовка к созданию и установке сертификата
Скачайте архивы win-acme.v2.2.9.1701.x64.pluggable.zip ↗ и letsencrypt.zip ↗.
Распакуйте архивы win-acme.v2.2.9.1701.x64.pluggable.zip и letsencrypt.zip, далее переместите содержимое архивов в папку:
C:\Program Files (x86)\R7-OFFICE\CommunityServer\Tools\
2.1. Параметры скрипта
| Параметр | Обязательный | Описание |
|---|---|---|
| -Domains | Да | Один или несколько доменов через запятую |
| Нет | Email для регистрации в Let’s Encrypt (по умолчанию support@первый-указанный-домен) | |
| -ForceCrypto | Нет | Принудительно применить шаблон IIS Crypto |
| -SkipCrypto | Нет | Полностью пропустить применение IIS Crypto |
| -Staging | Нет | Использовать тестовый сервер Let’s Encrypt |
2.2. Примеры запуска скрипта
# Базовый запуск (рекомендуется): .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru" # Без указания email (будет использован support@domain.yourcompany.ru): .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" # Тестовый запуск на staging: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru" -Staging # Принудительно применить IIS Crypto: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru" -ForceCrypto # Полностью пропустить IIS Crypto: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru" -SkipCrypto # Несколько доменов: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru","www.domain.yourcompany.ru" -Email "admin@yourcompany.ru" # Комбинация параметров: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru" -Staging -SkipCrypto
2.3. Автоматическое обновление сертификата
Win-acme автоматически создаёт задачу в Планировщике заданий Windows
Она запускается ежедневно и обновляет сертификат примерно за 14 дней до истечения.
# Проверить задачу: Get-ScheduledTask -TaskName "*win-acme*" | Format-List # Принудительное обновление вручную: cd "C:\Program Files (x86)\R7-OFFICE\CommunityServer\Tools\" .\wacs.exe --renew --force
3. Создание и установка сертификата, подписанного Центром Сертификации
- На компьютере должна быть установлена оболочка PowerShell версии 5 или выше.
- Для выполнения скрипта потребуется публичный (белый) IP адрес для DNS сервера с А записью.
- После применения IIS Crypto желательно перезагрузить сервер вручную в удобное время.
# Перейдите в установочный каталог: C:\Program Files (x86)\R7-OFFICE\CommunityServer\Tools\ # Запустите скрипт: .\letsencrypt.ps1 -Domains "domain.yourcompany.ru" -Email "admin@yourcompany.ru"
Где:
- domain.yourcompany.ru — адрес домена, где установлен ваш портал Р7-Офис. Корпоративный сервер.
- admin@yourcompany.ru — адрес электронной почты администратора портала Р7-Офис. Корпоративный сервер.
3.1. Проверка результата после установки сертификата
Теперь ваш портал должен быть доступен по адресу https://domain.yourcompany.ru
# Сертификаты в хранилище:
Get-ChildItem Cert:\LocalMachine\WebHosting | Where-Object { $_.Subject -like "*domain*" } | Format-List Subject, NotAfter, Thumbprint
# Задача обновления win-acme:
Get-ScheduledTask -TaskName "*win-acme*" | Format-ListЛоги работы скрипта сохраняются в C:\logs\letsencrypt-YYYYMMDD.log












