Docker+Caddy+mkcert+Tomcat 在本地配置域名和 HTTPS
阿新 • • 發佈:2021-10-31
-
下載並使用
mkcert
生成本地SSL證書將生成的兩個證書存放到當前工作目錄的
ssl
資料夾中$ choco install -y mkcert $ mkcert -install $ mkcert "*.hlr.com" // 會在當前資料夾生成兩個證書 _wildcard.hlr.com.pem 和 _wildcard.hlr.com-key.pem
-
修改本機 hosts
127.0.0.1 www.hlr.com
-
啟動 Tomcat 映象並對映一個 HTML 檔案
-
在當前資料夾中建立一個
index.html
內容為<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> 這是一個測試頁 </body> </html>
-
Pull 並啟動 Tomcat 的 Docker 映象,對映當前工作目錄的
index.html
到映象中的/usr/local/tomcat/webapps/myweb/index.html
docker pull tomcat docker run -d \ -v $PWD/index.html:/usr/local/tomcat/webapps/myweb/index.html \ --rm tomcat:9.0
-
-
配置 Caddyfile 並啟動 Caddy 映象,用於反向代理 Tomcat,和啟用本地 SSL 證書
-
獲取 Tomcat 容器在 Docker 內的 IP 地址
docker ps # 返回結果 dec02980f265 tomcat:9.0 docker inspect --format '{{ .NetworkSettings.IPAddress }}' dec02980f265 # 返回結果 172.17.0.2
-
配置
Caddyfile
檔案www.hlr.com { reverse_proxy 172.17.0.2:8080 tls /data/ssl/_wildcard.hlr.com.pem /data/ssl/_wildcard.hlr.com-key.pem }
-
啟動 Caddy
docker run -d -p 80:80 -p 443:443\ -v $PWD/Caddyfile:/etc/caddy/Caddyfile \ -v caddy_data:/data \ -v $PWD/ssl:/data/ssl \ caddy
參考:
tls (Caddyfile directive) - Caddy Documentation
-