2017-08-22 4 views
0

Ich versuche, von Traefik v1.2.3 auf v1.3.6 auf Kubernetes zu aktualisieren. Ich habe meine TLS-Zertifikate in den Pods von Secrets installiert. Unter v1.2.3 funktioniert alles wie erwartet. Wenn ich versuche, meinen v1.3.6 Einsatz anwenden (nur das neue Docker Bild ändern sind), nicht die Schoten mit der folgenden Meldung starten:Fehler beim Erstellen der TLS-Konfiguration nach der Aktualisierung von Traefik auf v1.3.6

time="2017-08-22T20:27:44Z" level=error msg="Error creating TLS config: tls: failed to find any PEM data in key input" 
time="2017-08-22T20:27:44Z" level=fatal msg="Error preparing server: tls: failed to find any PEM data in key input" 

Unten ist meine traefik.toml Datei:

defaultEntryPoints = ["http","https"] 
[entryPoints] 
    [entryPoints.http] 
    address = ":80" 
    [entryPoints.http.redirect] 
     entryPoint = "https" 
    [entryPoints.https] 
    address = ":443" 
     [entryPoints.https.tls] 
     [[entryPoints.https.tls.certificates]] 
     CertFile = "/ssl/wildcard.foo.mydomain.com.crt" 
     KeyFile = "/ssl/wildcard.foo.mydomain.com.key" 
     [[entryPoints.https.tls.certificates]] 
     CertFile = "/ssl/wildcard.mydomain.com.crt" 
     KeyFile = "/ssl/wildcard.mydomain.com.key" 
     [[entryPoints.https.tls.certificates]] 
     CertFile = "/ssl/wildcard.local.crt" 
     KeyFile = "/ssl/wildcard.local.key" 
[kubernetes] 
    labelselector = "expose=internal" 

Mein erster Eindruck von den Fehlern der Pods ist, dass die Schlüssel im Secret nicht gültig sind. Ich bin jedoch in der Lage, Base64 den Inhalt des Geheimnisses zu dekodieren und zu sehen, dass die Werte mit denen der Zertifikatsdateien übereinstimmen, die ich lokal gespeichert habe. Außerdem würde ich erwarten, diesen Fehler in jeder Version von Traefik zu sehen, wenn diese tatsächlich ungültig sind. Bei der Überprüfung des Änderungsprotokolls für Traefik sehe ich, dass die SSL-Bibliothek aktualisiert wurde, aber der zugehörige PR gibt an, dass nur Verschlüsselungen hinzugefügt und zuvor unterstützte nicht entfernt wurden.

: Bearbeiten w/Zusatzinfo:

mit --logLevel=DEBUG Lauf bietet diese zusätzlichen Informationen (ganz unten im Fall vorausgesetzt, es ist hilfreich):

[cluster-traefik-2693375319-w67hf] time="2017-08-22T21:41:19Z" level=debug msg="Global configuration loaded {"GraceTimeOut":10000000000,"Debug":false,"CheckNewVersion":true,"AccessLogsFile":"","TraefikLogsFile":"","LogLevel":"DEBUG","EntryPoints":{"http":{"Network":"","Address":":80","TLS":null,"Redirect":{"EntryPoint":"https","Regex":"","Replacement":""},"Auth":null,"Compress":false},"https":{"Network":"","Address":":443","TLS":{"MinVersion":"","CipherSuites":null,"Certificates":[{"CertFile":"/ssl/wildcard.foo.mydomain.com.crt","KeyFile":"/ssl/wildcard.foo.mydomain.com.key"},{"CertFile":"/ssl/wildcard.mydomain.com.crt","KeyFile":"/ssl/wildcard.mydomain.com.key"},{"CertFile":"/ssl/wildcard.local.crt","KeyFile":"/ssl/wildcard.local.key"}],"ClientCAFiles":null},"Redirect":null,"Auth":null,"Compress":false}},"Cluster":null,"Constraints":[],"ACME":null,"DefaultEntryPoints":["http","https"],"ProvidersThrottleDuration":2000000000,"MaxIdleConnsPerHost":200,"IdleTimeout":180000000000,"InsecureSkipVerify":false,"Retry":null,"HealthCheck":{"Interval":30000000000},"Docker":null,"File":null,"Web":{"Address":":8080","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":null,"Metrics":{"Prometheus":{"Buckets":[0.1,0.3,1.2,5]}},"Path":"","Auth":null},"Marathon":null,"Consul":null,"ConsulCatalog":null,"Etcd":null,"Zookeeper":null,"Boltdb":null,"Kubernetes":{"Watch":true,"Filename":"","Constraints":[],"Endpoint":"","Token":"","CertAuthFilePath":"","DisablePassHostHeaders":false,"Namespaces":null,"LabelSelector":"expose=internal"},"Mesos":null,"Eureka":null,"ECS":null,"Rancher":null,"DynamoDB":null}" 
[cluster-traefik-2693375319-w67hf] time="2017-08-22T21:41:19Z" level=info msg="Preparing server https &{Network: Address::443 TLS:0xc42060d800 Redirect:<nil> Auth:<nil> Compress:false}" 
[cluster-traefik-2693375319-w67hf] time="2017-08-22T21:41:19Z" level=error msg="Error creating TLS config: tls: failed to find any PEM data in key input" 
[cluster-traefik-2693375319-w67hf] time="2017-08-22T21:41:19Z" level=fatal msg="Error preparing server: tls: failed to find any PEM data in key input" 

Antwort

0

Dieses Problem neu sein validation logic in the crypto/tls library in Go 1.8 stellte sich heraus, . Sie validieren nun die Zertifikatsblöcke, die wie zuvor in ----- enden. Der private Schlüssel für eine meiner Zertifikatsdateien endete in (Bindestrich fehlt). Durch das Hinzufügen des fehlenden Zeichens wurde dieses Problem behoben.

Verwandte Themen