Это руководство объясняет, как установить 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, чтобы создать CSR автоматически.
- Следуйте нашему пошаговому руководству о том, как сгенерировать CSR на macOS.
Отправьте 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. Он содержит корневой и промежуточные сертификаты, которые браузеры и клиенты используют для построения цепочки доверия к доверенному корню. Без них посетители могут увидеть предупреждение «небезопасно» или о недоверенном сертификате.
- Найдите файл с расширением .ca-bundle.
- Откройте Keychain Access (найдите его через Spotlight или в разделе Applications > Utilities).
- Перетащите файл .ca-bundle в окно Keychain Access. Добавьте его в связку ключей System, чтобы он применялся ко всем пользователям и службам.
- Чтобы подтвердить импорт, введите название вашего CA в строке поиска. Вы должны увидеть в списке промежуточные сертификаты и корневой сертификат.
То же самое можно сделать через Terminal, что полезно на сервере без графического интерфейса или удалённом сервере. Это импортирует bundle в системную связку ключей:
sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain
Шаг 3: Добавьте основной сертификат (устаревший Server.app)
Этот шаг использует прекращённое приложение Server.app. Если на вашем Mac его больше нет, смотрите вместо этого следующий раздел.
- Откройте приложение Server и перейдите в Server > Certificates.
- На главной странице дважды щёлкните ожидающий сертификат (тот, что был создан при генерации CSR).
- В открывшемся окне перетащите ваш файл .crt, затем нажмите OK.
- Теперь действительный сертификат отображает имя издателя и дату истечения срока действия.
Шаг 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.
Часто задаваемые вопросы
Нет. Apple удалила большинство служб хостинга из macOS Server в 2018 году и прекратила поддержку самого приложения в апреле 2022 года. Последний выпуск, версия 5.12.2, работает только вплоть до macOS Monterey и не поддерживается на более новых версиях macOS. В текущих версиях macOS вы импортируете сертификаты в Keychain Access и настраиваете Apache или nginx напрямую, вместо использования приложения Server.
Импортируйте CA bundle и ваш сертификат в Keychain Access, чтобы система доверяла цепочке, затем укажите вашему веб-серверу путь к сертификату и приватному ключу. macOS включает Apache (настраивается в /etc/apache2/), а nginx можно установить через Homebrew. Укажите SSLCertificateFile и SSLCertificateKeyFile в Apache, или ssl_certificate и ssl_certificate_key в nginx, затем проверьте конфигурацию и перезапустите сервер.
Доверенные сертификаты хранятся в связках ключей, управляемых через Keychain Access. Общесистемные сертификаты хранятся в связке ключей System, расположенной по пути /Library/Keychains/System.keychain. Файлы сертификата и приватного ключа, которые читает ваш веб-сервер, можно разместить в другом месте, например в /etc/ssl/, при условии, что конфигурация сервера указывает на них, а ключ остаётся доступным для чтения только root.
Да. 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


