В Ubuntu, похоже, что лучшее место для закрытого ключа, используемого для подписи сертификата (для использования nginx), находится в /etc/ssl/private/
Этот ответ добавляет, что сертификат должен войти, /etc/ssl/certs/
но это кажется небезопасным местом. Есть ли .crt
файлы должны быть в целости и сохранности , или они считаются общественной?
ssl
ssl-certificate
openssl
Адам Нельсон
источник
источник
.crt
рекламный щит на Таймс-сквер, если хотите.Ответы:
Файл .crt отправляется всему, что подключается; это публично. (
chown root:root
иchmod 644
)Добавить в закрытый ключ местоположение; убедитесь, что вы надежно закрепили его, а также располагали там. (
chown root:ssl-cert
иchmod 640
)источник
ssl-cert
, который используется, возможно, среди прочего, для создания самозаверяющих сертификатовНа самом деле не имеет значения, куда вы их поместите, если вы правильно защищаете свои файлы закрытых ключей . Открытый сертификат является публичным; защита не требуется - привилегии сервера или иное.
Чтобы расширить ответ, я не использую местоположение по умолчанию
/etc/ssl
.Мне легче держать все мои в отдельной области из-за резервных копий + другие причины.
Для Apache SSL я сохраняю свою
/etc/apache2/ssl/private
или аналогичную «корневую область» в/etc/
.Пример настройки
Этот пост ориентирован на Ubuntu (Debian) + Apache, но должен работать на большинстве систем -
просто примените разрешения и обновите местоположение / путь в данной конфигурации (apache / nginx / etc).
Если файлы ключей SSL защищены правильно (каталог и файлы), все будет в порядке. Обратите внимание на заметки!
Создать каталоги:
Примечание:
chmod 710
поддерживаетssl-cert
группу под Ubuntu. (См. Комментарии)Настройка разрешения
700
на/etc/apache2/ssl/private
также будет работать нормально.Разместите файлы SSL:
Установить владельца:
Примечание.
Если у вас нет группы ssl-cert , просто используйте «root: root» в строке выше или пропустите вторую строку.
Установить разрешения:
Публичный сертификат (ы)
Закрытый ключ (ы)
Примечание:
разрешение группы установлено на READ (640) из-за группы Ubuntu ssl-cert. «600» тоже хорошо.
Включить модуль Apache SSL
Отредактируйте любые файлы сайта Apache и включите
(см. последний абзац) *
Перезапустите сервис Apache2
или же
Готово. Протестируйте свой новый сайт SSL.
* Опять же, это выходит за рамки вопроса, но вы можете скопировать файл конфигурации сайта Apache SSL по умолчанию (
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
) в качестве хорошей отправной точки / примера директив / каталогов по умолчанию, которые обычно используются в простом (conf) файле Apache / SSL Apache / SSL. , Обычно он указывает на самоподписанный сертификат SSL + ключ (snakeoil), пакеты CA, а также на общие директивы, используемые для данного сайта SSL.После копирования просто отредактируйте новый файл .conf и добавьте / удалите / обновите его по мере необходимости, добавив новую информацию / пути выше, а затем выполните его,
sudo a2ensite mysiteexample-ssl
чтобы включить.источник
<VirtualHost *:443>
раздел в вашемsites-available/mysite.conf
должны включать сертификаты , как так:SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mysite.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/mysite.key
Все ответы здесь кажутся нормальными, но я хочу упомянуть одну вещь, которую я нашел, это проблема ... Если вам нужно объединить свой сертификат с промежуточными звеньями или корнями, чтобы придумать файл цепочки, не вставляйте это
/etc/ssl/certs
, потому что когдаc_rehash
выполняется, он может создавать хеш-символьные ссылки на ваши сертификаты из-за корней или промежуточных звеньев внутри них.Затем позже, если срок действия ваших сертификатов истек, и вы удалили их и не знаете, что делать повторно
c_rehash
, возможно, вы сломали символьные ссылки хеша в вашем/etc/ssl/certs
каталоге, и странные вещи начинают происходить, когда ваша локальная машина пытается подключиться к себе через SSL, и он не может найти корни для проверки. Например, с curl я внезапно начал получать:Вскоре после очистки некоторых старых .crt и сцепленных файлов .pem, которые у меня были
/etc/ssl/certs
.Хранение хотя бы ваших цепей в другом месте позволяет избежать этой проблемы. Я закончил тем, что
/etc/ssl/local_certs
держал свои сертификаты и цепочки, чтобы они не были потеряны в беспорядке сертификатов CA, которые вы найдете в/etc/ssl/certs
источник
На самом деле небезопасного места нет, если разрешение для отдельных файлов / каталогов установлено на что-то подобное,
chown root :0 private.key
иchmod 600 private.key
поэтому только root может его читать. Как вы говорите, CSR и файлы сертификатов менее чувствительны.С этими разрешениями пути, которые вы упоминаете, и / usr / local / ssl должны быть в порядке.
источник
Расположение правильное:
/etc/ssl/certs/
для.crt
файла/etc/ssl/private
для.key
файлаВладелец должен быть
root:root
для обоих (используйте,sudo chmod root:root <file>
чтобы изменить, если требуется).Разрешения :
644
для.crt
файла600
для.key
файлаЭто будет работать для
nginx
.источник