Certificat HTTPS pour vault avec docker-compose

timothee-benedet 09/11/2020
RÉSOLU

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 :)

09/11/2020 à 18:49

0 commentaire

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

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

S'inscrire
An Error Occurred: Internal Server Error

Oops! An Error Occurred

The server returned a "500 Internal Server Error".

Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.