Надоело постоянно подсовывать сертификаты на телефоны, планшеты и прочие внешние ноутбуки. Было найдено решение по публикации Exchange Autodiscover через Reverse-Proxy c Let’s Encrypt.
Создаем файл
touch /etc/apache2/site-available/mail.conf
<VirtualHost *:443>
ServerName mail.zhilich.ru #меняем на свой адрес
ServerAlias autodiscover.zhilich.ru #меняем на свой адрес
ServerAdmin admin@zhilich.ru #меняем на свою почту
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
Header always set X-Frame-Options SAMEORIGIN
Header set Server Apache
Header unset X-AspNet-Version
Header unset X-OWA-Version
Header unset X-Powered-By
RequestHeader unset Expect early
SetEnvIf User-Agent ".*MSIE.*" value BrowserMSIE
Header unset WWW-Authenticate
Header add WWW-Authenticate "Basic realm=autodiscover.zhilich.ru" #меняем на свой адрес
ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
#longer connection timeout to prevent activesync errors
ProxyPass / https://192.168.0.2/ connectiontimeout=600 #меняем на свой адрес
ProxyPassReverse / https://192.168.0.2/ #меняем на свой адрес
<Directory /Microsoft-Server-ActiveSync>
#attachment/activesync bugfix
SSLRenegBufferSize 31457280
</Directory>
<Directory /Mapi>
#attachment/activesync bugfix
SSLRenegBufferSize 31457280
</Directory>
#charset e.g. for german special chars
AddDefaultCharset ISO-8859-1
DocumentRoot /var/www/html
<Directory />
Order deny,allow
Deny from all
</Directory>
<Directory /var/www/html>
DirectoryIndex index.php index.html
Options -Indexes +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Proxy *>
SetEnv proxy-nokeepalive 1
SetEnv force-proxy-request-1.0 1
Order deny,allow
Allow from all
</Proxy>
#SSL Certificate
BrowserMatch "MSIE [2-6]"nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]"ssl-unclean-shutdown
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/apache2/ssl/server.crt #меняем на свой сертификат
SSLCertificateKeyFile /etc/apache2/ssl/server.key #меняем на свой ключ
</VirtualHost>
Собственно уже будет работать, запускаем certboot выпускаем сертификат Let’s Encrypt и живём радуемся, но!
Для совсем уж корректной работы нужен редирект 80-to-443, создаем файл
touch /etc/apache2/site-available/mail-redirect.conf
Вот с таким содержимым:
<VirtualHost *:80>
ServerName mail.zhilich.ru #меняем на свой адрес
ServerAlias autodiscover.zhilich.ru #меняем на свой адрес
ServerSignature Off
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ErrorLog /var/log/apache2/redirect.error.log
LogLevel warn
</VirtualHost>
Теперь переходим в Exchange ECP и настраиваем его, в части авторизации а именно:

Ну и в «мобильном Outlook» не забываем адрес поменять

Остается совсем уже последний штрих, а именно идем на сервер Exchange, запускаем Exchange Management Shell и пишем
Set-ClientAccessService -Identity <exchange> -AutoDiscoverServiceInternalUri https://<autodiscover.zhilich.ru>/Autodiscover/Autodiscover.xml
Где <exchange> — имя вашего сервера Exchange
А <autodiscover.zhilich.ru> — DNS-имя вашего Exchange AutoDiscover
В целом на этом всё, проверяем, всё должно работать.