Что такое файлы .crt и .key и как их генерировать?


60

У меня есть следующая конфигурация:

SSLEngine on
SSLCertificateFile /etc/httpd/conf/login.domain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/login.domain.com.key
SSLCipherSuite ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

но я не знаю, как генерировать .crtи .keyфайлы.

Ответы:


65

Файлы crt и key представляют обе части сертификата, ключ - это закрытый ключ сертификата, а crt - подписанный сертификат.

Это только один из способов генерирования сертификатов, другой способ будет иметь оба внутри файла pem или другой в контейнере p12.

У вас есть несколько способов создать эти файлы, если вы хотите самостоятельно подписать сертификат, вы можете просто выполнить эти команды

openssl genrsa 2048 > host.key
chmod 400 host.key
openssl req -new -x509 -nodes -sha256 -days 365 -key host.key -out host.cert

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

С этого момента вы можете создать собственную цепочку доверия, создав свой центр сертификации, или купить сертификат у таких компаний, как Verisign или Thawte.


после запуска "openssl genrsa 1024> host.key" я получил это в терминале: "e is 65537 (0x10001)" это ошибка?
Мохаммед Али Акбари

1
Да, это означает, что openssl не может записать случайное начальное число в используемый по умолчанию файл, который определяется openssl.cnf, по умолчанию в CentOS / RHEL этот файл находится в /etc/pki/tls/openssl.cnf. Попробуйте выполнить те же команды, что и root, и посмотрите, как это происходит.
рысь

Я пробую это как root, но я снова получил "e is 65537 (0x10001)"
Мохаммед Али Акбари

1
У вас на компьютере активирован SELinux? Проверьте / var / log / messages, чтобы увидеть, почему openssl не может записать файл
lynxman

4
letsencrypt.org является бесплатным провайдером ssl. Взгляните на это, а не платите много денег этим компаниям.
Каан

6

Это открытая (.crt) и приватная (.key) части сертификата SSL. Посмотрите этот вопрос, чтобы получить множество соответствующей информации, например, если вы хотите создать сертификат самостоятельно или купить его.


Основной вопрос, но - я предполагаю, что мне следует скопировать файл .key в мою ~/.sshпапку, когда я загружаю свой CSR-файл в моего поставщика ssl?
Касим

1
@Qasim SSL-файлы не имеют ничего общего с SSH (к этому относится и .ssh-папка).
mad_vs
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.