Dies wurde zuvor gefragt, aber ich bin völlig stecken geblieben und nichts hat bisher für mich gearbeitet, die in anderen Fragen aufgeführt wurde. Obwohl sich dies auf Identity Server bezieht, habe ich bei der Einstellung von SSL etwas verpasst."Das Remote-Zertifikat ist ungültig nach dem Validierungsverfahren"
I Setup wie folgt (dies ist mit IIS Express nicht vollständig IIS):
- Identity Server App: auth.testhost.com:44373/core
- Web-API-Service: https://localhost:44356/
bekomme ich den Fehler im Titel auf der Linie:
app.UseIdentityServerBearerTokenAuthentication(options);
Dies ist ba sically fordert einige offene Konfigurationsoptionen vom Server unter auth.testhost.com:44373/core/.well-known/openid-configuration an.
Meine Optionen sind:
Authority = "https://auth.testhost.com:44373/core",
RequiredScopes = new List<string>() { "api" }
In einigen Beispielen mir eine Client-ID und geheim zu sehen, aber sie sind in den Optionen für mich nicht zur Verfügung: ist das ein Problem?
Wenn Sie irgendwelche Identitätsserveroptionen sehen möchten, sagen Sie bitte, und ich werde posten. lief ich den folgenden Befehl ein CERT zu erstellen:
makecert.exe -r -pe -n "CN=auth.testhost.com" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048
Dies erzeugt das Zertifikat, das ich dann auf Vertrauenswürdige Stammzertifizierungsstellen exportiert.
Soweit ich das beurteilen kann, sollten die SSL-Port-Bindungen von Visual Studio gehandhabt werden, da ich IIS Express verwende. Im Folgenden sind die Bindungen hat:
<site name="Authenticator_V2" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\users\user\documents\visual studio 2015\Projects\Authenticator_V2\Authenticator_V2" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:49755:localhost" />
<binding protocol="https" bindingInformation="*:44373:localhost" />
<binding protocol="https" bindingInformation="*:44373:auth.testhost.com" />
</bindings>
</site>
<site name="APIClient2" id="7">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\user\documents\visual studio 2015\Projects\Authenticator_V2\APIClient2" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:53812:localhost" />
<binding protocol="https" bindingInformation="*:44356:localhost" />
</bindings>
</site>
Dies ist meine hosts-Datei:
127.0.0.1 localhost
127.0.0.1 hybrid.testhost.com
127.0.0.1 auth.testhost.com
Als ich nach https://auth.testhost.com:44373/ gehe ich immer noch eine rote Linie durch mein Protokoll haben. Ich nehme an, das bedeutet, dass etwas noch nicht richtig konfiguriert wurde. Ich bin mit Chrome und auf das Zertifikat, klicken gibt:
"Your connection to this site is not private."
Details:
SHA-1 Certificate
The certificate for this site expires in 2017 or later, and the certificate chain contains a certificate signed using SHA-1.
View certificate
Certificate Error
There are issues with the site's certificate chain (net::ERR_CERT_COMMON_NAME_INVALID).
ich am ERR_CERT_COMMON_NAME_INVALID Fehler angesehen und es scheint, dass ein Chrom-Fehler. Wie auch immer, mein Fehler wird vom Web-Service-Server ausgelöst, der versucht, sich mit dem Authentifizierungs-Server zu verbinden, also glaube ich, dass ich diesen ignorieren kann ???
Ich lief netsh auch zu überprüfen, ein cert Bindung aufgebaut war:
netsh http show sslcert ipport=0.0.0.0:44373
SSL Certificate bindings:
-------------------------
IP:port : 0.0.0.0:44373
Certificate Hash : HAS ODD HASH - REMOVED
Application ID : {HAS GUID - REMOVED}
Certificate Store Name : MY
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check : Enabled
Revocation Freshness Time : 0
URL Retrieval Timeout : 0
Ctl Identifier : (null)
Ctl Store Name : (null)
DS Mapper Usage : Disabled
Negotiate Client Certificate : Disabled
Reject Connections : Disabled
An dieser Stelle ein bemerkt, daß dieser Hash ist nicht die richtige für mein Zertifikat. Es ist für den IIS Express-localhost. Ich fand diesen Link: IdentityServer: The remote certificate is invalid according to the validation procedure und kopiert die Schritte, um das Localhost-Zertifikat in die vertrauenswürdigen Stammzertifizierungsstellen zu verschieben, aber leider habe ich immer noch den Fehler. Ich bin mir jetzt nicht sicher, was ich sonst tun soll.
Scope-Konfiguration:
new Scope
{
Name = "api",
DisplayName = "Can call API",
Enabled = true,
Type = ScopeType.Resource
//ScopeSecrets = new List<Secret> { }
}
Alle meine Kunden haben diesen Bereich.
Dank
Ist das Zertifikat definitiv dem 'Vertrauenswürdigen Stamm-Zert-Berechtigung'-Speicher Ihres' Computer-Kontos' hinzugefügt? Sie müssen "MMC.exe" mit Administratorrechten ausführen und wählen Sie "Computer Account" – Seany84
Hallo, ich glaube schon. Ich bin im Fenster und sowohl das Zertifikat, das ich für auth.testhost.com erstellt habe, als auch das von IIS Express verwendete localhost. – user2330270
Können Sie Ihr aktuelles MMC-Fenster schließen und es wieder mit Administratorrechten öffnen, Computerkonto auswählen und prüfen, ob das Zertifikat noch vorhanden ist? – Seany84