bg-tutorials

Как установить SSL-сертификат на серверах macOS

Это руководство объясняет, как установить SSL-сертификат на macOS. В нём рассматривается импорт сертификата и CA bundle через Keychain Access, более старый рабочий процесс macOS Server (Server.app), который многие существующие конфигурации всё ещё используют, а также реалистичный путь для текущих версий macOS, где Server.app больше нет.

Важно: Apple прекратила поддержку продукта macOS Server (Server.app). Веб-сервисы, почта и большинство служб хостинга были удалены в 2018 году, а сам продукт был снят с производства в апреле 2022 года. Последняя версия, 5.12.2, работает только вплоть до macOS Monterey. Ниже описаны оба метода: устаревший через Server.app и актуальный подход.

Создание CSR-кода

Чтобы активировать SSL-сертификат, вы отправляете данные о своём домене и организации в удостоверяющий центр (CA). Этот стандартный шаг называется запросом на подпись сертификата, или CSR. У вас есть два варианта:

Отправьте CSR при оформлении заказа. CA проверит ваш запрос и, после одобрения, подпишет и выпустит сертификат. Вы получите файлы сертификата по электронной почте. После этого переходите к установке ниже.

Установка SSL-сертификата на macOS

Шаги ниже следуют исходному рабочему процессу macOS Server (Server.app): импорт CA bundle и сертификата через Keychain Access, затем назначение сертификата службам в приложении Server. Если на вашем Mac больше нет приложения Server, перейдите к разделу Текущая macOS: без Server.app после Шага 2, поскольку импорт в Keychain по-прежнему применим.

Шаг 1: Подготовьте файлы сертификата

Загрузите ZIP-архив, отправленный вам CA, и распакуйте его. У вас должен быть файл с расширением .crt (ваш основной сертификат) и файл с расширением .ca-bundle (корневой и промежуточные сертификаты, также называемые CA bundle). Вам также понадобится приватный ключ, созданный вместе с CSR.

Шаг 2: Добавьте файл .ca-bundle в Keychain Access

Начните с CA bundle. Он содержит корневой и промежуточные сертификаты, которые браузеры и клиенты используют для построения цепочки доверия к доверенному корню. Без них посетители могут увидеть предупреждение «небезопасно» или о недоверенном сертификате.

  1. Найдите файл с расширением .ca-bundle.
  2. Откройте Keychain Access (найдите его через Spotlight или в разделе Applications > Utilities).
  3. Перетащите файл .ca-bundle в окно Keychain Access. Добавьте его в связку ключей System, чтобы он применялся ко всем пользователям и службам.
  4. Чтобы подтвердить импорт, введите название вашего CA в строке поиска. Вы должны увидеть в списке промежуточные сертификаты и корневой сертификат.

То же самое можно сделать через Terminal, что полезно на сервере без графического интерфейса или удалённом сервере. Это импортирует bundle в системную связку ключей:

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

Шаг 3: Добавьте основной сертификат (устаревший Server.app)

Этот шаг использует прекращённое приложение Server.app. Если на вашем Mac его больше нет, смотрите вместо этого следующий раздел.

  1. Откройте приложение Server и перейдите в Server > Certificates.
  2. На главной странице дважды щёлкните ожидающий сертификат (тот, что был создан при генерации CSR).
  3. В открывшемся окне перетащите ваш файл .crt, затем нажмите OK.
  4. Теперь действительный сертификат отображает имя издателя и дату истечения срока действия.

Шаг 4: Назначьте сертификат своим службам (устаревший Server.app)

В приложении Server найдите настройку Secure services using. Используйте выпадающее меню, чтобы выбрать свой SSL-сертификат. Чтобы назначить его конкретным службам, например общему доступу к файлам или почте, нажмите Custom и выберите нужные службы для защиты. По завершении нажмите OK.

Теперь ваш SSL-сертификат установлен. Чтобы подтвердить результат и проверить наличие распространённых проблем, используйте наш SSL Checker.

Текущая macOS: без Server.app (используйте Keychain вместе с Apache или nginx)

Поскольку Apple прекратила поддержку Server.app, в текущих версиях macOS нет экрана Server > Certificates и нет назначения сертификата для отдельных служб. Импорт сертификата в Keychain Access (Шаг 2) по-прежнему применим для системного доверия, но HTTPS вы настраиваете напрямую через веб-сервер. macOS поставляется со встроенным Apache (httpd), а nginx доступен через Homebrew. Разместите сертификат и ключ там, где сервер сможет их прочитать, например в /etc/ssl/, и убедитесь, что приватный ключ доступен для чтения только root.

Вариант А: встроенный Apache (httpd)

Отредактируйте файл /etc/apache2/httpd.conf и уберите символ # в начале этих строк, чтобы загрузились модули SSL и конфигурация SSL:

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

Сначала создайте файл полной цепочки (ваш сертификат, за которым следует CA bundle), который директива SSLCertificateFile ожидает в Apache 2.4.8 и новее:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

Затем отредактируйте файл /etc/apache2/extra/httpd-ssl.conf и убедитесь, что он прослушивает порт 443. Этот файл уже содержит стандартный блок <VirtualHost _default_:443> с самоподписанным сертификатом, поэтому либо отредактируйте этот блок, либо добавьте виртуальный хост, приведённый ниже, и закомментируйте стандартный, чтобы избежать двух хостов на порту 443:

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

Пути выше предполагают, что приватный ключ находится в /etc/ssl/private/, которого может не быть в macOS по умолчанию. Сначала создайте его и убедитесь, что ключ доступен для чтения только root:

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

Проверьте конфигурацию перед перезапуском, затем перезапустите Apache:

sudo apachectl configtest
sudo apachectl restart

В результате проверки вы должны увидеть Syntax OK. Если возникнет ошибка, исправьте её перед перезапуском, чтобы сервер не завершился с ошибкой при старте.

Вариант Б: nginx

Если вы используете nginx, укажите файл полной цепочки и ключ в блоке сервера, затем перезагрузите конфигурацию:

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

Для управления конфигурацией на парке компьютеров Mac (роль, которую раньше выполнял Profile Manager) используйте современное решение MDM. Чтобы проверить установленный сертификат с любого устройства, используйте наш SSL Checker.

Часто задаваемые вопросы

Существует ли ещё macOS Server?

Нет. Apple удалила большинство служб хостинга из macOS Server в 2018 году и прекратила поддержку самого приложения в апреле 2022 года. Последний выпуск, версия 5.12.2, работает только вплоть до macOS Monterey и не поддерживается на более новых версиях macOS. В текущих версиях macOS вы импортируете сертификаты в Keychain Access и настраиваете Apache или nginx напрямую, вместо использования приложения Server.

Как установить SSL-сертификат на macOS без приложения Server?

Импортируйте CA bundle и ваш сертификат в Keychain Access, чтобы система доверяла цепочке, затем укажите вашему веб-серверу путь к сертификату и приватному ключу. macOS включает Apache (настраивается в /etc/apache2/), а nginx можно установить через Homebrew. Укажите SSLCertificateFile и SSLCertificateKeyFile в Apache, или ssl_certificate и ssl_certificate_key в nginx, затем проверьте конфигурацию и перезапустите сервер.

Где macOS хранит SSL-сертификаты?

Доверенные сертификаты хранятся в связках ключей, управляемых через Keychain Access. Общесистемные сертификаты хранятся в связке ключей System, расположенной по пути /Library/Keychains/System.keychain. Файлы сертификата и приватного ключа, которые читает ваш веб-сервер, можно разместить в другом месте, например в /etc/ssl/, при условии, что конфигурация сервера указывает на них, а ключ остаётся доступным для чтения только root.

Нужно ли устанавливать CA bundle на macOS?

Да. CA bundle содержит промежуточные и корневой сертификаты, которые позволяют браузерам и клиентам построить полную цепочку доверия. Если пропустить этот шаг, некоторые посетители увидят предупреждение о недоверенной или неполной цепочке сертификатов. Импортируйте файл .ca-bundle в Keychain Access, либо объедините его с вашим сертификатом в один файл полной цепочки для Apache или nginx.

Как проверить, что сертификат установлен правильно?

Откройте ваш сайт в браузере и проверьте значок замка, либо запросите у сервера сертификат через Terminal с помощью OpenSSL:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Эта команда выводит издателя и сроки действия. Вы также можете выполнить полную внешнюю проверку с помощью нашего SSL Checker.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.