Исходя из того, что я пробовал и сделал работающим, вы можете избавиться от необходимости читать как cert.pem
, так и cert.key
. Кроме того, GetRootCertificate()
будет работать только в том случае, если серверные системы размещены на хорошо известном надежном веб-сайте, таком как google.com
или msdn.com
или ему подобные, и localhost. Более подробный ответ можно найти здесь и здесь
Если мы намерены использовать наш собственный DNS хоста с SSL, создание сертификата сервера в pfx
, назначенном вашему DNS и преобразование его в pem
для клиентского приложения - это ваш путь к go. Использование таких инструментов, как openssl, поможет преобразовать кодировку сертификата.
openssl pkcs12 -in "<DiskLocationOfPfx>\ProjectName.pfx" -out "<TargetLocation>\certifcate.pem" -clcerts
После преобразования сертификата сервера в pem вы можете использовать
var channelCreds = new SslCredentials(File.ReadAllText($"{rootDir}/cert.pem"));
var channel = new Channel("www.youdns.com", 5001, secureCredentials);