Могу ли я создать собственный корневой сертификат для использования SSL-соединения с Go? Это безопасно?

Я пишу простой клиент и сервер на Go. Я не хочу платить за SSL-сертификат, и я читал, что самозаверяющие сертификаты бесполезны для подтверждения личности, поскольку злоумышленник может просто MITM и предоставить свой собственный самозаверяющий сертификат.

Однако я узнал, что мой клиент может использовать любые корневые сертификаты, которые я хочу. Могу ли я просто создать свой собственный, доверять этому клиенту, подписать сертификат для моего сервера и безопасно подключиться, будучи защищенным от атак MITM? Если да, как мне создать собственный корневой сертификат?


person Jake    schedule 23.07.2012    source источник
comment
Это может помочь, даже не пробуя его: eclectica.ca/howto/ ssl-cert-howto.php   -  person jimt    schedule 23.07.2012


Ответы (1)


Самозаверяющий сертификат - это особый случай развертывания вашей собственной PKI (доведенной до крайности, когда у вас есть только один сертификат в этой PKI).

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

Вы можете создать свой собственный ЦС и настроить свой клиент для использования его корневого сертификата ЦС или, если у вас очень ограниченный набор серверов, вы обычно можете настроить клиентов на прямое доверие определенному сертификату (самоподписанный или нет).

Возможно, вас заинтересуют эти вопросы для ссылок на инструменты:

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

person Bruno    schedule 23.07.2012