2016-07-23 3 views
2

Я использую Consul для регистрации веб-приложения. Веб-приложение использует клиент Java Consul для регистрации с проверкой. Я могу активировать TLS и шифрование с помощью самоподписанного ЦС для шифрования обменов между агентами консула и между моим агентом webapp и consul. Но я не могу делать проверки на HTTPS с самозаверяющим сертификатом CA.Consul Check HTTPS self signed

Мое веб-приложение защищено и прослушивается только на HTTPS с самоподписанным сертификатом. Когда я регистрирую сессию с консулом и предоставляю https: // ... URL для проверки, я отклоняюсь:

com.orbitz.consul.ConsulException: запрос консула не выполнен со статусом [500]: ошибка rpc: rpc ошибка: «сервис: a4cHealthCheck: 172.17.0.3» Проверка находится в критическом состоянии

в журналах консул агента, я вижу:

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 

кажется, что консул агент не принимает собственные сертификаты для чеки. Как отключить проверку SSL только для проверок или предоставить трастер для проверок?

ответ

1

Golang crypto lib имеет множество путей, он ищет надежных авторитетов. Это зависит от операционной системы, но и для системы Linux вы можете проверить это:

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

Таким образом, вы можете иметь ваш вопрос решается установкой ЦС в системе по умолчанию.

О том, как установить корневой сертификат, см

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

или для других ОС:

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

НТН;)

+0

святой корова, взял меня за несколько часов до того, как я нашел ваше сообщение! большое спасибо! – Adelave

+0

Мне не удалось заставить его работать в MacOS со ссылкой, которую вы предоставляете. Любая идея другого решения? –

0

Вы можете отключить проверку HTTPS с имущество tls_skip_verify. Он описан в разделе HTTP Consul checks documentation. Если вы используете файл JSON для настройки вашего агента, вот пример конфигурации.

{ 
    "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

привет @nicolas: Я оконная платформа для запуска консула. Я попробовал аналогичную конфигурацию, которую вы опубликовали. Но проверка работоспособности никогда не регистрировалась. Есть идеи? Вся моя конфигурация здесь: { "сервис": { "идентификатор": "SomeName", \t "имя": "nameofthissevice", "сервис" : "MyService", "адрес": «127.0.0.1 " "порт": 62133, "enableTagOverride": ложь, \t "проверить": { "ID": "SomeName", "имя": "nameofthissevice", "HTTP":" HTTP://127.0.0.1:62133/Service1.svc/MyService/PingMe», "tls_skip_verify": ложные, "метод": "GET", "интервал": "10s", "тайм-аут": "1s" } } } – NANDAKUMAR

+0

Какую версию консула вы используете? –

+0

Привет @nicolas, Пробовал 0,9.0 на платформе Windows. – NANDAKUMAR

Смежные вопросы