Мне нужно настроить сервер Apache 2 с SSL.
У меня есть файл *.key, но мой издатель сертификата предоставил мне файл *.cer.
Во всех документах вокруг сети они предназначены для сертификатов *.crt.
Пожалуйста, дайте мне знать, это *.cer, как *.crt.
Если теперь, как я могу преобразовать формат CER в CRT?
Расширения файлов для криптографических сертификатов на самом деле не столь стандартизированы, как вы ожидали. Windows по умолчанию рассматривает двойной щелчок на файле .crt
в качестве запроса на импорт сертификата в хранилище корневого хранилища Windows, но рассматривает файл .cer
как запрос только для просмотра сертификата. Таким образом, они по-разному в этом смысле, по крайней мере, что Windows имеет какое-то своеобразное значение для того, что происходит, когда вы дважды щелкаете по каждому типу файла.
Но то, как Windows обрабатывает их, когда вы их дважды щелкаете, - это единственное различие между ними. Оба расширения просто представляют, что он содержит общедоступный сертификат. Вы можете переименовать файл или использовать его вместо другого в любом файле системы или конфигурации, который я видел. И на платформах, отличных от Windows (и даже в Windows) люди не особенно осторожны в отношении того, какое расширение они используют, и рассматривают их как взаимозаменяемые, так как нет никакой разницы между ними, если содержимое файла верное.
Сделать вещи более запутанными в том, что есть два стандартных способа хранения данных сертификата в файле: One - это "двоичная" кодировка X.509, а другая - "текстовая" base64-кодировка, которая обычно начинается с "-----BEGIN CERTIFICATE-----
". Они кодируют одни и те же данные, но по-разному. Большинство систем принимают оба формата, но если вам нужно, вы можете конвертировать один в другой через openssl или другие инструменты. Но кодировка в файле сертификата действительно не зависит от того, какое расширение кто-то дал этому файлу.
Если у вас есть конкретные вопросы о трудностях с использованием определенного типа файла с конкретной программой, лучше было бы написать отдельный вопрос, описывающий, какой у вас файл и что ожидает ваше приложение.
Согласно документации mod_ssl:
SSLCertificateFile:
Name: SSLCertificateFile
Description: Server PEM-encoded X.509 certificate file
Файл сертификата должен быть PEM-закодирован X.509 Файл сертификата:
openssl x509 -inform DER -in certificate.cer -out certificate.pem
zscaler
, бег vagrant
на win
( vbox
homestead
), устанавливая наши доверенные корневые сертификаты в бродячей коробке? Я scp
«d их, чтобы затем использовать ваши преобразования и слинкован их в /etc/ssl/certs
и ca-certificates.crt
google-recaptcha
tls
ssl
file_get_contents
/etc/ssl/certs
, а также скопировали содержимое в ca-certificates.crt
файла перед reprovisioning, и до сих пор им получать google-recaptcha
tls
ssl
ошибку на file_get_contents
на коробка разработчика.
CER - это сертификат X.509 в двоичной форме, DER.
CRT - это двоичный сертификат X.509, заключенный в текст (base-64).
Это не та же кодировка.
Я предполагаю, что у вас есть файл .cer, содержащий данные сертификата, закодированные в PKCS # 7, и вы хотите преобразовать его в данные сертификата, закодированные в PEM (как правило, файл .crt или .pem). Например, файл .cer, содержащий PKCS # 7-кодированные данные, выглядит следующим образом:
-----BEGIN PKCS7----- MIIW4gYJKoZIhvcNAQcCoIIW0zCCFs8CAQExADALBgkqhkiG9w0BBwGggha1MIIH ... POI9n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G +bKhADEA -----END PKCS7-----
Данные сертификата PEM выглядят следующим образом:
-----BEGIN CERTIFICATE----- MIIHNjCCBh6gAwIBAgIQAlBxtqKazsxUSR9QdWWxaDANBgkqhkiG9w0BAQUFADBm ... nv72c/OV4nlyrvBLPoaS5JFUJvFUG8RfAEY= -----END CERTIFICATE-----
Существует команда OpenSSL, которая преобразует файлы .cer(с данными PKCS # 7) в данные PEM, с которыми вы можете столкнуться (блок BEGIN CERTIFICATE
в приведенном выше примере). Вы можете принуждать данные PKCS # 7 в формате PEM этой командой в файле, который мы будем называть certfile.cer:
openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
Обратите внимание, что файл .cer или .pem может содержать один или несколько сертификатов (возможно, всю цепочку сертификатов).
Ответ на вопрос, как преобразовать файл .cer в файл .crt(они закодированы иначе!):
openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt
unable to load PKCS7 object
В основном существуют два типа кодирования сертификата CER: DER и Base64. Когда тип DER возвращает сертификат загрузки ошибки (процедуры кодирования asn1), попробуйте PEM, и он будет работать.
openssl x509 -inform DER -in certificate.cer -out certificate.crt
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
Файл .cer и .crt должен быть взаимозаменяемым, если импортировать их в хранилище ключей.
Взгляните на содержимое файла .cer. Удалите все, что угодно, перед строкой -----BEGIN CERTIFICATE-----
и после строки -----END CERTIFICATE-----
. Вы останетесь с линиями BEGIN/END с кучей закодированного в Base64 материала между ними.
-----BEGIN CERTIFICATE-----
MIIDQTCCAqqgAwIBAgIJALQea21f1bVjMA0GCSqGSIb3DQEBBQUAMIG1MQswCQYD
...
pfDACIDHTrwCk5OefMwArfEkSBo/
-----END CERTIFICATE-----
Затем просто импортируйте его в свой ключевой файл с помощью keytool.
keytool -import -alias myalias -keystore my.keystore -trustcacerts -file mycert.cer
Если ваш файл cer имеет двоичный формат, вы должны преобразовать его
openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
Эта команда помогает мне:
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Благодаря @Liibo
Просто сделай
openssl x509 -req -days 365 -in server.cer -signkey server.key -out server.crt
CER
иCRT
ничего не значат. Различные поставщики PKI используют разные расширения для одной и той же вещи. Если файл является двоичным, то, вероятно, он закодирован в формате ASN.1 / DER. Если файл читается человеком с-----BEGIN CERTIFICATE-----
, то его кодируется PEM. Что у вас есть (DER или PEM) и что вам нужно (DER или PEM)?