Я работаю над добавлением поддержки SSL-сертификата в VB. Net API, и у меня возникают проблемы с выполнением этого через код. Я могу заставить его работать, если я вручную импортирую сертификат в IIS и затем запускаю свои команды netsh. У меня есть сертификат, созданный с помощью mkcert
и импортируемый в IIS.
- Импорт сертификата в IIS
- cmd:
netsh http delete sslcert ipport=0.0.0.0:443
- Запуск мой API, использующий https / 443 baseurl
- Это работает как задумано.
Когда я пытаюсь сделать это с помощью кода, он не работает, я получаю netsh error a specified logon session does not exist
. Вот код, который я использую для импорта и привязки сертификата.
' Import the certificate into IIS LocalComputer, this is needed for the ip address bindings.
Dim IIS = New X509Store(StoreName.My, StoreLocation.LocalMachine)
IIS.Open(OpenFlags.ReadWrite)
Try
For Each certificate As X509Certificate2 In x509
IIS.Add(certificate)
Next
Finally
IIS.Close()
End Try
' Bind the SSL Cert to the network address and port.
Dim p As Process = New Process()
Dim pi As ProcessStartInfo = New ProcessStartInfo()
Dim cmd As String = " /K " + "netsh http add sslcert ipport=0.0.0.0:" + port.ToString() + " certhash=" + CertificateThumbprint + " appid={myAppId}"
Console.WriteLine(cmd)
pi.Arguments = cmd
pi.FileName = "cmd.exe"
p.StartInfo = pi
p.Start()