使用Let’s Encrypt让域名支持HTTPS[运维教程]
安装 acme.sh
curl https://get.acme.sh | sh
安装成功后执行 source ~/.bashrc
以确保脚本所设置的命令别名生效
如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:
sudo apt-get -y install netcat
安装socat
sudo apt-get -y install socat
使用 acme.sh 生成证书
sudo ~/.acme.sh/acme.sh --issue -d jszbug.com --standalone -k ec-256 --force
手动更新 ECC 证书
sudo ~/.acme.sh/acme.sh --renew -d jszbug.com --force --ecc
安装证书和密钥
sudo ~/.acme.sh/acme.sh --installcert -d jszbug.com --fullchainpath /etc/encrypt/jszbug.com.crt --keypath /etc/encrypt/jszbug.com.key --ecc --force
配置nginx
server{
listen 443 ssl;
server_name jszbug.com
charset UTF-8;
ssl on;
ssl_certificate /etc/encrypt/jszbug.com.crt;
ssl_certificate_key /etc/encrypt/jszbug.com.key;
ssl_session_timeout 5m;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host jszbug.com;
}
}
server {
listen 80;
server_name jszbug.com;
rewrite ^(.*)$ https://$host$1 permanent;
}