2016-12-21 14 views
-3

Насколько я понимаю, все SSL-сертификаты подписаны с использованием открытого ключа асимметричной пары паба/приватного ключа.Почему SSL-сертификаты подписаны с помощью закрытого ключа?

Но все (зарегистрировано не менее, что я проверил) примеры там в Интернете используют секретный ключ

Один из способов я нашел для самостоятельной подписи использует следующую команду:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 

Другой способ я нашел является:

sudo openssl genrsa -out mykey.key 2048 
sudo openssl req -new -key mykey.key -out mycsr.csr 
sudo openssl x509 -req -days 365 -in mycsr.csr -signkey mykey.key -out mycert.crt 

Приведенные выше примеры используют открытый ключ для создания сертификата или закрытого ключа. Если частный ключ, это правильное использование?

Еще одна вещь,

Какая разница от самостоятельной подписи против CA подписания сертификата.
Есть ли в сертификате какая-либо дополнительная информация о полномочиях по подписке?

И что же означает подпись CA?
Используют ли они свои личные ключи для подписания или что это такое?

EDIT:

Данное заявление As far as I read от точки # 2 следующего веб-сайта. я мог бы совершенно неправильно понять его заявление, так как я новичок в SSL концепции

http://tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html

Если закрытый ключ используется для подписи сертификата, а также тот же самый секретный ключ используется в конфигурации сервера Apache HTTP Я до сих пор путают, откуда будет браузер получить открытый ключ в исходное SSL рукопожатия

Я имею в виду следующую конфигурацию апача HTTPD

<VirtualHost 192.168.0.1:443> 
    DocumentRoot /var/www/html2 
    ServerName www.yourdomain.com 
    SSLEngine on 
    SSLCertificateFile /path/to/your_domain_name.crt 
    SSLCertificateKeyFile /path/to/your_private.key 
    SSLCertificateChainFile /path/to/DigiCertCA.crt 
</VirtualHost> 

UPDATE:

Я специально указывает на section 1.2.2 указанной выше ссылке, где говорится

Это кто-то, вы должны безоговорочно доверять: у вас есть его/ее свидетельство о загрузке в вашем браузере (корневой сертификат). Сертификат содержит информацию о владельце сертификата, такую ​​как адрес электронной почты, имя владельца, использование сертификата, продолжительность действия, местоположение ресурса или выдающееся имя (DN), которое включает в себя общее имя (CN) (адрес веб-сайта или e -mail-адрес в зависимости от использования) и идентификатор сертификата лица, которое удостоверяет (подписывает) эту информацию. Он содержит также открытый ключ и, наконец, хеш, чтобы гарантировать, что сертификат не был изменен.

+2

'все сертификаты SSL подписаны с использованием открытого ключа', где вы это прочитали? Цифровое подписание использует только закрытый ключ. Открытый ключ используется только для проверки подписи. – Crypt32

+0

Разница в том, что при самоподписании поля «Subject» и «Эмитент» равны. В противном случае это CA подписан. CA помещает свое имя в поле «Эмитент». И браузеры дифференцируют самоподписанные сертификаты, подписанные CA, путем объединения этих полей. – Crypt32

+1

dowvoted для «насколько я читал» - пожалуйста, предоставьте источник этой информации, потому что это либо неправильно, либо вы неправильно поняли это. Также подано заявление на то, чтобы поставить несколько вопросов в один. –

ответ

0

Почему сертификаты SSL подписаны с помощью закрытого ключа?

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

Насколько я знаю, все SSL-сертификаты подписаны с использованием открытого ключа асимметричной пары пабов/приватных ключей.

Нет, вы этого не сделали, вы неправильно поняли, что читаете.

Но все (по крайней мере то, что я проверил) примеры там в Интернете используют секретный ключ

конечно.

Приведенные выше примеры используют открытый ключ для создания сертификата или закрытого ключа. Если частный ключ, это правильное использование?

Они используют оба варианта. Открытый ключ встроен в сертификат, а закрытый ключ используется для его подписания.

В чем отличие от самоподписывания и ЦС, подписавшего сертификат. Есть ли какая-либо дополнительная информация о полномочиях подписания, присутствующих в сертификате?

Да, есть поле эмитента.

А что означает подпись CA? Используют ли они свои личные ключи для подписывания?

Да.

Вышеприведенное заявление. Насколько я знаю, из пункта № 2 следующего веб-сайта.

Нет, это не так.

Я мог бы совершенно неправильно

Угу.

Если закрытый ключ используется для подписи сертификата, а также тот же самый секретный ключ используется в конфигурации Apache HTTP Server Я до сих пор путают, откуда будет браузер получить открытый ключ в исходное SSL рукопожатия

Из сертификата.

Я специально указывает на раздел 1.2.2 по ссылке выше, где говорится

[надрез] Он также содержит открытый ключ и, наконец, хэш, чтобы гарантировать, что сертификат не был подделан с.

Здесь нет ничего о подписании сертификата с открытым ключом. «Содержит» не означает «подписанный».

+0

И последний вопрос: Это команды, используемые для создания подписанного сертификата. 'Суд OpenSSL REQ -new -key mykey.key -out mycsr.csr' ' Судо OpenSSL x509 -req -days 365 -в mycsr.csr -signkey mykey.key -out mycert.crt' ** Где вводим ли мы открытый ключ ** в генерации сертификата, чтобы браузер получил его из сертификата? Во всех командах мы просто передаем закрытый ключ – user3151330

+0

@ user3151330 'mykey.key' - это ключевая * пара *, а не только открытый ключ. Не позволяйте этому убегать. – EJP