An automated SSL certificate deployment tool for downloading certificates from anssl.cn and deploying them to your servers.
- 🚀 Automatically deploys certificates to Nginx, Apache, RustFS, and 1Panel, then reloads services
- ✅ Built-in HTTP-01 validation service to automatically respond to ACME challenges
- ☁️ Supports uploading certificates to cloud providers (Alibaba Cloud, Qiniu Cloud, Tencent Cloud)
- 🔧 Daemon mode for long-running background execution
- 🖥️ Multi-platform support: macOS, Linux, Windows (amd64/arm64)
For Linux/macOS, use the install script. It installs the latest version from GitHub Releases by default:
curl -fsSL https://gh-proxy.com/https://raw.githubusercontent.com/https-cert/deploy/main/scripts/install.sh | shTo pin a version or customize paths:
curl -fsSL https://gh-proxy.com/https://raw.githubusercontent.com/https-cert/deploy/main/scripts/install.sh | VERSION=v0.6.0 APP_DIR=/opt/anssl shBy default, anssl is installed into /opt/anssl and linked as /usr/local/bin/anssl. To uninstall:
# Remove the binary and keep config
curl -fsSL https://gh-proxy.com/https://raw.githubusercontent.com/https-cert/deploy/main/scripts/install.sh | sh -s -- --uninstall
# Remove the binary and config
curl -fsSL https://gh-proxy.com/https://raw.githubusercontent.com/https-cert/deploy/main/scripts/install.sh | sh -s -- --uninstall --purgeAdd an HTTP-01 reverse proxy rule (for certificate issuance):
# Add this inside the server block
location ~ ^/.well-known/acme-challenge/(.+)$ {
proxy_pass http://localhost:19000/acme-challenge/$1;
proxy_set_header Host $host;
}Reload Nginx:
sudo nginx -t && sudo nginx -s reload# Start daemon
sudo anssl daemon -c /opt/anssl/config.yaml
# Check status
anssl status
# View logs
anssl log -f- Request a free certificate on the website
- Backend pushes ACME challenge tokens to the CLI
- CLI caches and serves Let's Encrypt validation requests automatically
- Validation succeeds and certificate is issued
- Certificate is downloaded and deployed to configured services (Nginx/Apache/RustFS/1Panel/FeiNiu OS)
- Nginx and Apache are reloaded automatically
Fully automated end-to-end, with no manual intervention.
# Daemon management
anssl daemon -c /opt/anssl/config.yaml # Start daemon
anssl status # Check status
anssl stop # Stop
anssl restart -c /opt/anssl/config.yaml # Restart
# Logs
anssl log # View logs
anssl log -f # Follow logs
# Update
anssl check-update # Check updates
anssl update # Run update# 1. Check Nginx config
sudo nginx -t
cat /etc/nginx/sites-enabled/default | grep acme-challenge
# 2. Check port usage
lsof -i :19000
# 3. Test validation service
curl http://localhost:19000/acme-challenge/test-token
# 4. Check logs
anssl log -f# Option 1: Use sudo
sudo anssl daemon -c /opt/anssl/config.yaml
# Option 2: Use user-owned directories
# Update /opt/anssl/config.yaml: ssl.path: "$HOME/nginx/ssl"
anssl daemon -c /opt/anssl/config.yamlsudo tee /etc/systemd/system/anssl.service > /dev/null <<EOF
[Unit]
Description=Certificate Deploy Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/anssl start -c /opt/anssl/config.yaml
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable anssl
sudo systemctl start ansslQ: Where can I get server.accessKey?
A: Log in to anssl.cn → Console → Developer → API Credentials.
Q: Which web servers and panels are supported?
A: Nginx, Apache, RustFS, 1Panel, and FeiNiu OS. Configure certificate directories or panel info in config.yaml, and deployment runs automatically (with reload for Nginx/Apache).
Q: Can I deploy to multiple targets at the same time?
A: Yes. Configure multiple targets in config.yaml (nginxPath, apachePath, rustFSPath, onePanel, feiNiuEnabled) and updates deploy to all enabled targets.
Q: Where can I get the 1Panel API key?
A: 1Panel → Settings → Security → API Interface → Generate API Key.
Q: Can certificates be deployed to both local services and cloud providers?
A: Yes. In the anssl.cn console, you can configure deployment to local CLI targets (Nginx/Apache/RustFS/1Panel/FeiNiu OS) and/or cloud providers (Alibaba Cloud/Qiniu Cloud/Tencent Cloud). Each certificate can have multiple deployment targets.
Q: Is manual action required for HTTP-01 validation?
A: No. Once Nginx reverse proxy is configured, validation is fully automated.
# Install dependencies
go mod download
# Run tests
go test -v ./...
# Build
go build -o anssl main.go- Project: https://github.com/https-cert/deploy
- Certificate service: https://anssl.cn
- Issue tracker: GitHub Issues
MIT License