Существует два возможных сценария: сертификат ненадежен, но действителен (например, действительный самоподписанный сертификат), или сертификат недействителен (например, когда вы обращаетесь к компьютеру в вашей локальной сети по IP или из-за пределов вашей локальной сети) по полному доменному имени, и у этой машины есть сертификат, выданный на его символическое имя). Клиент SVN не будет доверять сертификату 2-го типа, даже если используется опция --trust-server-certificate. Во втором сценарии я могу придумать только один вариант - использовать запись файла hosts для псевдонима IP-адреса этого компьютера и его внутреннего имени.
Иллюстрация сценария 2, с которым я однажды столкнулся, когда VisualSVN был установлен со всеми опциями по умолчанию и сгенерировал сертификат для символического имени машины, которое он обнаружил:
Имя компьютера локальной сети MACHINE1 запускает сервер SVN, и на нем установлен сертификат, выданный MACHINE1. Вы пытаетесь получить доступ к SVN через его IP-адрес и получаете ошибку недействительного сертификата.
Вы также получите эту ошибку, если MACHINE1 доступен из-за пределов вашей локальной сети по полному доменному имени, например svn.domain.com
, и вы подключаетесь к полному доменному имени.
В обоих случаях svn выдаст ошибку недействительного сертификата.
Вы можете добавить запись в файл hosts
, чтобы сопоставить IP-адрес устройства (локальный или внешний в зависимости от того, откуда вы к нему обращаетесь) с выданным сертификатом имени:
123.45.67.89 MACHINE1
и доступ к SVN через https://machine1/svn/, чтобы обойти эту ситуацию.