前段时间简单学了学Caddy, 一直没有用武之地, 最近需要联调一个服务, 所以拿它试试水。
首先使用scoop安装这俩软件, 这边使用Gitee上的一个仓库
scoop bucket add extras https://gitee.com/scoop-bucket/extras
然后分别安装
scoop install caddy scoop install mkcert
然后在Caddy.exe同目录下建一个Caddyfile文件(无后缀名), 文件内容:
其中tls后面的证书是需要用mkcert生成的
# 全局选项块, 必须放在头部 { # 开启debug模式 #debug # 管理端点禁用 admin off # 自动HTTPS #auto_https off|disable_redirects|ignore_loaded_certs } # 片段, 可以使用import在任何地方引用 (backend) { # 反向代理 reverse_proxy http://localhost:8901 { # header_up为在代理之前+-请求头 header_up Host {host} header_up X-Real-IP {remote} header_up X-Forwarded-For {remote} header_up X-Forwarded-Port {server_port} header_up X-Forwarded-Proto {scheme} # header_down为在代理请求返回之后+-响应头 header_down Access-Control-Allow-Headers * header_down Access-Control-Allow-Origin * } } example.org { tls D:/data/ssh_cert/_wildcard.xxx.cn+3.pem D:/data/ssh_cert/_wildcard.xxx.cn+3-key.pem # handle 表示拦截器 handle /* { import backend } }
找个目录使用mkcert生成证书, 需要什么域名或者ip直接往后写就行:
mkcert "*.example.org" localhost 127.0.0.1 ::1
然后安装Local CA (此操作只需执行一次即可, 以后无需执行)
mkcert --install
然后把Caddyfile中tls后面的证书和key路径和文件名改成生成的证书路径和文件名
然后就可以启动Caddy了
caddy run
OK最后就可以愉快的玩耍了。
另附:
若直接使用tomcat, 则需要在tomcat server.xml中配置
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" maxThreads="25" port="8443" keystoreFile="C:\Users\cccy0\.keystore" keystorePass="123456" keyPass="changeit" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS" />
使用mkCert生成p12格式证书:
mkcert -pkcs12 xxxxxxxxxxx
使用keytool把p12转为jks文件 (注意生成的p12证书默认keyPass密码为changeit )
keytool -importkeystore -srckeystore xx.p12 -srcstoretype pkcs12 -destkeystore xx.jks