Traefik带有自签名后端

时间:2018-02-04 04:05:58

标签: kibana traefik

我有traefik设置用自签名证书代理kibana后端。每当我访问后端时,我在浏览器中收到“内部错误”,并在kibana日志中看到以下错误消息。

  

{ “类型”: “登录”, “@时间戳”: “2018-02-04T03:56:26Z”, “标签”:[ “连接”, “客户端”, “错误”], “PID” :1, “电平”: “错误”, “消息”:“139782929405760:错误:14094412:SSL   例程:ssl3_read_bytes:sslv3警告不好   证书:../ deps / openssl / openssl / ssl / s3_pkt.c:1493:SSL警报号   42 \ n139782929405760:错误:140940E5:SSL例程:ssl3_read_bytes:ssl   握手   失败:../ deps / openssl / openssl / ssl / s3_pkt.c:1216:\ n“,”错误“:{”message“:”139782929405760:错误:14094412:SSL例程:ssl3_read_bytes:sslv3警告错误   证书:../ deps / openssl / openssl / ssl / s3_pkt.c:1493:SSL警报号   42 \ n139782929405760:错误:140940E5:SSL例程:ssl3_read_bytes:ssl   握手   失败:../ DEPS / OpenSSL的/ OpenSSL的/ SSL / s3_pkt.c:1216:\ N “ ”名称“: ”错误“, ”堆“:” 错误:   139782929405760:错误:14094412:SSL例程:ssl3_read_bytes:sslv3   警告错误证书:../ deps / openssl / openssl / ssl / s3_pkt.c:1493:SSL   警告号码42 \ n139782929405760:错误:140940E5:SSL   例程:ssl3_read_bytes:ssl握手   失败:../ deps / openssl / openssl / ssl / s3_pkt.c:1216:\ n \ n出错   (本机)“}}

这是我的docker-compose文件:

 ---
 version: '3.0'
 services:
  traefik:
    image: traefik:1.5-alpine
    command: --web --accesslog --docker --docker.watch --docker.domain=localhost --logLevel=ERROR --entryPoints="Name:http Address::80"
    ports:
      - "80:80"
      - "8080"
    labels:
      - "traefik.frontend.rule=Host:monitor.localhost"
      - "traefik.port=8080"
      - "traefik.frontend.entryPoints=http"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/null:/traefik.toml
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-platinum:6.1.3
    container_name: elasticsearch
    ports:
      - "9200"
    labels:
      - "traefik.frontend.rule=Host:es.localhost"
      - "traefik.frontend.entryPoints=http"
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
      - ELASTIC_PASSWORD=changeme
    cap_add:
      - IPC_LOCK
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
  kibana:
    image: docker.elastic.co/kibana/kibana:6.1.3
    container_name: kibana
    ports:
      - "5601"
    labels:
      - "traefik.frontend.rule=Host:kb.localhost"
      - "traefik.frontend.entryPoints=http"
      - "traefik.protocol=https"
    links: 
      - elasticsearch
    environment:
      - SERVER_SSL_ENABLED="true"
      - SERVER_SSL_CERT=/usr/share/kibana/config/kibana.example.org.crt
      - SERVER_SSL_KEY=/usr/share/kibana/config/kibana.example.org.key
    depends_on:
      - elasticsearch

如何让traefik使用自签名证书?我在设置中遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

我自己一直在处理这类问题。 Traefik目前不支持TLS参数的每个后端配置,除非它用于客户端身份验证传递。目前为后端反向代理路由提供的唯一自定义是使用全局insecureSkipVerify布尔设置(请参阅Traefik' Commons文档中的简短模糊)。

我还没有对此进行验证,但我相信--insecureSkipVerify=true将是传递给您的command节的Traefik以启用此功能的正确标志。

请注意,这会影响所有后端连接,并且可以打开你的中间人攻击。 Traefik的GitHub存储库中的问题#3038跟踪了一个可以根据后端进行配置的设计思路。随意为此功能提供PR或发布PR。