Sign inSign up

albreis/traefik-hostmanager

By albreis

•Updated 4 months ago

Certificados válidos para utilização em ambiente de desenvolvimento.

Image
Developer tools
0

1.2K

albreis/traefik-hostmanager repository overview

⁠Traefik Host & SSL Manager

⁠ABOUT

Atualiza automaticamente o arquivos de hosts do seu sistema e gera certificados válidos para utilização em ambiente de desenvolvimento.

Homepage: https://github.com/albreis/traefik-hostmanager⁠

⁠Preparação

Para utilizar é necessário ter instalado o mkcert na sua máquina.

⁠macOS

Homebrew⁠

brew install mkcert
brew install nss # if you use Firefox

or MacPorts⁠.

sudo port selfupdate
sudo port install mkcert
sudo port install nss # if you use Firefox
⁠Linux
sudo apt install libnss3-tools
    -or-
sudo yum install nss-tools
    -or-
sudo pacman -S nss
    -or-
sudo zypper install mozilla-nss-tools
⁠Windows

Chocolatey⁠

choco install mkcert

Scoop⁠

scoop bucket add extras
scoop install mkcert

⁠Iniciar o mkcert

Após instalar o mkcert abra seu terminal e rode o comando:

mkcert -install

Para instalar o CA Root no seu sistema e fazer ele confiar nos certificados gerados pelo mkcert

⁠Utilização com Docker

⁠1º - Configurar o Traefik

Para carregar automaticamente as configurações de novos certificados temos que configurar o File Provider:

Crie um volume global no Docker:

Definindo um device específico:

docker volume create --driver local -o o=bind -o type=none -o device=C:/certificados certificados

Criando no diretório padrão do Docker:

docker volume create certificados

Agora configure o Traefik:

version: '3.3'
name: traefik
services:
  traefik:
    image: traefik
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - certificados:/certificados
    command:
      # suas configurações ...
      - --providers.file.directory=/certificados
      - --providers.file.watch=true
      # suas configurações ...
    networks:
      - www
volumes:
  certificados:
    external: true

# ... restante do seu arquivo

⁠2º - Configurar o serviço do Traefik Host & SSL Manager
  app:
    image: albreis/traefik-hostmanager
    restart: always 
    volumes:
      # Monta o socket Docker
      - /var/run/docker.sock:/var/run/docker.sock
      # Altere para ocaminho  do seu arquivos de Hosts, nesse caso é para Windows
      - /c/Windows/System32/drivers/etc/hosts:/hosts
      # Monte o volume de certificados em /certificados
      - certificados:/certificados
      # Monte o volume de certificados em /root/.local/share/mkcert
      - /c/Users/conta/AppData/Local/mkcert:/root/.local/share/mkcert

Para saber o caminho do seu CARoot faça o seguinte comando no terminal:

mkcert -CAROOT

⁠Reutilizando certificados

⁠VueJS

Utilizando os certificados com com VueJS

const { defineConfig } = require('@vue/cli-service')
const {version} = require('./package.json')
const fs = require('fs');

module.exports = defineConfig({
  lintOnSave: false,
  transpileDependencies: true,
  publicPath: process.env.NODE_ENV == 'production' ? '/' : '/',
  devServer:{
    host: '0.0.0.0',
    port: 8080,
    https: {
      key: fs.readFileSync('C:/certificados/mkcert/localhost-key.pem'),
      cert: fs.readFileSync('C:/certificados/mkcert/localhost.pem'),
    },
    allowedHosts: ['*'],
    client: {
      // webSocketURL: 'wss://34blhjcg-8080.brs.devtunnels.ms/ws',
    }
  },
  // .... outras configurações
})
⁠Angular

Para configurar HTTPS no servidor de desenvolvimento do Angular, você pode adicionar opções diretamente ao angular.json ou usar parâmetros de linha de comando.

"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "ssl": true,
      "sslKey": "C:/certificados/mkcert/localhost-key.pem",
      "sslCert": "C:/certificados/mkcert/localhost.pem",
      "port": 4200
    },
    ...
  },
  ...
}
⁠React com Create React App
set HTTPS=true&&set SSL_CRT_FILE=C:/certificados/mkcert/localhost.pem&&set SSL_KEY_FILE=C:/certificados/mkcert/localhost-key.pem&&npm start
⁠Webpack Dev Server
const fs = require('fs');

module.exports = {
  // ... outras configurações
  devServer: {
    https: {
      key: fs.readFileSync('C:/certificados/mkcert/localhost-key.pem'),
      cert: fs.readFileSync('C:/certificados/mkcert/localhost.pem')
    },
    host: '0.0.0.0',
    port: 8080,
    allowedHosts: 'all',
  },
  // ... outras configurações
};
⁠LICENSE

MIT⁠

Tag summary

Content type

Image

Digest

sha256:16e8f0ad5…

Size

407.2 MB

Last updated

4 months ago

docker pull albreis/traefik-hostmanager