2016-07-23 18 views
2

Ich benutze Consul, um eine Webanwendung zu registrieren. Die Web-App verwendet den Java Consul-Client, um sich bei der Überprüfung zu registrieren. Ich bin in der Lage, TLS und Verschlüsselung mit einer selbst signierten CA zu aktivieren, um den Austausch zwischen Konsulagenten und zwischen meinem Webapp und Konsulagenten zu verschlüsseln. Aber ich bin nicht in der Lage, Prüfungen auf einem HTTPS mit selbst signierten CA signierten Zertifikat zu machen.Konsul Check HTTPS selbst signiert

Meine Webanwendung ist gesichert und hört nur auf HTTPS mit einem selbstsignierten Zertifikat. Wenn ich eine Sitzung mit Konsul registrieren und eine https: // ... URL für die Überprüfung bereitstellen, werde ich abgelehnt:

com.orbitz.consul.ConsulException: Consul-Anfrage mit Status fehlgeschlagen [500]: RPC-Fehler: rpc Fehler: prüfen 'Service: a4cHealthCheck: 172.17.0.3' ist in einem kritischen Zustand

in Konsul Agent-Protokolle, kann ich sehen:

2016/07/23 08:24:45 [WARN] agent: http request failed 'https://172.17.0.3:8443/rest/latest/health/check': Get https://172.17.0.3:8443/rest/latest/health/check: x509: certificate signed by unknown authority 

Es scheint, dass der Konsul Mittel akzeptieren keine selbstsignierten Zertifikaten für Kontrollen. Wie kann ich die SSL-Überprüfung nur für Schecks deaktivieren oder ein Truster für Schecks bereitstellen?

Antwort

1

Golang Crypto Lib haben eine Reihe von Pfaden er sucht vertrauenswürdige Behörden. Dies variiert je nach Os, aber für Linux-Systeme können Sie dies überprüfen:

https://golang.org/src/crypto/x509/root_linux.go

So können Sie Ihr Problem durch die Installation Ihrer CA in die Systemausfälle gelöst haben.

Denn wie ein Stammzertifikat installieren, finden Sie

https://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu

oder für andere OS:

http://kb.kerio.com/product/kerio-connect/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html

HTH;)

+0

heilige Kuh, nahm mich Stunden bevor ich Ihren Beitrag finde! Danke vielmals! – Adelave

+0

Ich habe es nicht geschafft, es für MacOS mit dem Link, den Sie bereitstellen, zu arbeiten. Irgendeine Idee einer anderen Lösung? –

0

Sie die HTTPS-Prüfungen deaktiviert mit die Eigenschaft tls_skip_verify. Es ist im Abschnitt HTTP der Consul checks documentation beschrieben. Wenn Sie Ihren Agenten mithilfe einer JSON-Datei konfigurieren, finden Sie hier ein Konfigurationsbeispiel.

{ 
    "services": [ 
    { 
     "id": "instance-1", 
     "name": "ManagementService", 
     "address": "localhost", 
     "port": 11080, 
     "checks": [ 
     { 
      "id": "api", 
      "name": "HTTP API", 
      "http": "https://localhost:11081/service/monitoring/ping", 
      "tls_skip_verify": true, 
      "interval": "5s", 
      "timeout": "1s" 
     } 
     ] 
    } 
    ] 
} 
+0

hi @nicolas: Ich bin Windows-Plattform, um den Konsul zu führen. Ich habe versucht, die ähnliche Konfiguration, die Sie gepostet haben. Aber der Gesundheitscheck hat sich nie registriert. Irgendeine Idee? Meine ganze Config ist hier: { "Service": { "id": "somename", \t "name": "nameofthissevice", "Service": "myservice", "Adresse": „127.0.0.1 " "Port": 62133, "enableTagOverride": false, \t "check": { "id": "somename", "name": "nameofthissevice", "http":" http://127.0.0.1:62133/Service1.svc/MyService/PingMe“ "tls_skip_verify": false, "Methode": "GET" "Intervall": "10s" "timeout": "1s" } } } – NANDAKUMAR

+0

Welche Version von Konsul verwenden Sie? –

+0

Hallo @nicolas, Versucht am 0.9.0 auf Windows-Plattform. – NANDAKUMAR