Sujet :

Certificat HTTPS pour vault avec docker-compose

Liste des sujets Répondre Créer un sujet

timothee-benedet

Membre depuis le 09/11/2020

Hello,

Je suis entrain d'apprendre à utiliser docker/docker-compose et j'aimerai mettre en place un Vault en https. Je fais ça avec un VM sous ubuntu 20.04.


Avec ce que j'ai fait actuellement, j'arrive à acceder à Vault depuis l'IP mais je bloque sur le fait de vouloir le passer en HTTPS avec un certificat openssl.

Voilà ce que j'ai :


Docker-compose.yaml : 

version: '3.6'

services:
  vault:
    build:
      context: ./vault
      dockerfile: Dockerfile
    ports:
      - 8200:8200
    volumes:
      - ./vault/config:/vault/config
      - ./vault/policies:/vault/policies
      - ./vault/data:/vault/data
      - ./vault/logs:/vault/logs
      - ./vault/volume_test/:/vault/volume_test

    environment:
      - VAULT_ADDR=http://192.168.56.8:8200
    command: server -config=/vault/config/vault-config.json
    cap_add:
      - IPC_LOCK

 

Mon dockerfile : 

# base image
FROM alpine:3.7

# set vault version
ENV VAULT_VERSION 0.10.3


# create a new directory
RUN mkdir /vault


# download dependencies
RUN apk --no-cache add \
      bash \
      ca-certificates \
      wget

# download and set up vault
RUN wget --quiet --output-document=/tmp/vault.zip https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip && \
    unzip /tmp/vault.zip -d /vault && \
    rm -f /tmp/vault.zip && \
    chmod +x /vault

# update PATH
ENV PATH="PATH=$PATH:$PWD/vault"


# add the config file
COPY ./config/vault-config.json /vault/config/vault-config.json

# expose port 8200
EXPOSE 8200

# run vault
ENTRYPOINT ["vault"]

 

Mon vault- conf.json file : 

{
  "backend": {
    "file": {
      "path": "vault/data"
    }
  },
  "listener": {
    "tcp":{
      "address": "0.0.0.0:8200",
      "tls_disable": 1
    }
},
  "ui": true
}

 

Juste avec ça, ça fonctionne.

Maintenant voici ce que j'ai fait pour tenter de mettre en place le https :

apt-get install openssl

openssl genrsa -aes256 -out certificat.key 4096

mv certificat.key certificat.key.lock

openssl rsa -in certificat.key.lock -out certificat.key

openssl req -new -key certificat.key.lock -out certificat.csr

openssl x509 -req -days 365 -in certificat.csr -signkey certificat.key.lock -out certificat.crt

 

J'ai ajouté les chemins vers mon .crt et mon .key dans mon vault-config.json :

{
  "backend": {
    "file": {
      "path": "vault/data"
    }
  },
  "listener": {
    "tcp":{
      "address": "0.0.0.0:8200",
      "tls_cert_file": "/path/to/my/certificat.crt",
      "tls_key_file": "/path/to/my/key.crt"
  },
  "ui": true
}

Je fais mon build et ça ne fonctionne pas.... Je n'arrive pas à voir commen faire.

 

Quelqu'un pour m'aiguiller ?

Merci d'avance :)

Répondre

vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire