本节支持 ProxyServer 支持 HTTPS,通过自签名证书或 Let's Encrypt 免费证书实现。
服务器添加 SSL 证书
采用 openssl 生成自签名证书:
shell
openssl genrsa -passout pass:1111 -des3 -out ca.key 2048
openssl req -passin pass:1111 -new -x509 -days 7300 -key ca.key -out ca.crt -subj "/C=CN/ST=Shannxi/L=Xi'an/O=domain/OU=domain/CN=domain.com"
openssl pkcs12 -export -passin pass:1111 -clcerts -in ca.crt -inkey ca.key -out ca.pkcs12
将生成的证书,配置到服务器中:
yaml
server:
base_path: "/"
https:
enable: true
host: "0.0.0.0"
port: 443
# JKS, PKCS12
keyStoreType: "PKCS12"
keyStorePath: "certs/ca.pkcs12"
keyStorePassword: "******"
keyManagerPassword: "******"
trustStorePath: "certs/ca.pkcs12"
即可通过 https 访问服务器,但是浏览器会提示证书不安全,忽略即可。
Let's Encrypt 免费证书
安装 certbot:
shell
sudo pip install certbot==0.40.0
sudo pip install acme==0.40.0
sudo pip install six
申请证书:
shell
# debian、ubuntu 系统
sudo certbot certonly --standalone -d domian.com -d www.domian.com -d code.domian.com
# Java 使用 pkcs12 格式
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name domian
通过 https 访问服务, 此时浏览器会有安全的绿标。如果没有,则打开 F12 刷新浏览器。