新版说明
安装方法
如果是CentOS 6,先执行:yum install epel-release
wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
./certbot-auto -n```
接下来就会自动安装所需的依赖包。
##生成证书
单域名生成证书:
`./certbot-auto certonly --email username@domain --agree-tos --webroot -w /websiteroot -d domain`
多域名单目录生成单证书:
`./certbot-auto certonly --email username@domain --agree-tos --webroot -w /websiteroot -d domain1 -d domain2`
多域名多目录生成多个证书:
`./certbot-auto certonly --email admin@vpser.net --agree-tos --webroot -w /websiteroot1 -d domain1 -d domain2 -w /websiteroot2 -d domain3 -d domain4`
##证书更新
进入Let's Encrypt目录,执行`./certbot-auto renew`即可,建议添加Cron。
#旧版说明
##下载Let's Encrypt
首先把Let's Encrypt给git下来
git clone https://github.com/letsencrypt/letsencrypt.git
cd letsencrypt
无git时
wget -c https://github.com/letsencrypt/letsencrypt/archive/master.zip && unzip master.zip && cd letsencrypt-master
##创建临时文件夹
mkdir -p /home/wwwroot/域名/.well-known/acme-challenge
##生成证书
./letsencrypt-auto certonly --email 邮箱 -d 域名 --webroot -w /网站目录完整路径 --agree-tos
##更新证书
cat >/root/renew-ssl.sh<<EOF
!/bin/bash
mkdir -p /网站目录完整路径/.well-known/acme-challenge
/root/letsencrypt/letsencrypt-auto --renew-by-default certonly --email 邮箱 -d 域名 --webroot -w /网站目录完整路径 --agree-tos
/etc/init.d/nginx reload
EOF
chmod +x /root/renew-ssl.sh
注意要修改上面letsencrypt-auto的路径为你自己的,并且里面的邮箱和域名也要修改。
再crontab里添加上:0 3 */60 * * /root/renew-ssl.sh
#HTTPS配置
##Nginx新增部分
listen 443 ssl;
server_name my_server_name;
ssl_certificate /etc/letsencrypt/live/server_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server_name/privkey.pem;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
##Apache新增部分
<VirtualHost *:443>
DocumentRoot index_Root //网站目录
ServerName ServerName:443 //域名
ServerAdmin Email //邮箱
SSLEngine onSSLCertificateFile /etc/letsencrypt/live/ServerName/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ServerName/privkey.pem
<Directory "index_Root"> //网站目录
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>
#注:
1. 新增部分中,ServerName及相关路径根据个人情况修改;
2. 本文非原创,来自
http://www.vpser.net/build/letsencrypt-free-ssl.html
http://www.vpser.net/build/letsencrypt-certbot.html
#问题解决:
1. 编译错误、创建虚拟环境失败
解决:简单粗暴卸载python相关所有软件,并且重新安装SS之后就好了。但是,为毛……
2. 只允许HTTPS访问
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name my.domain.com;
[....]
}
3. 国内DNS不支持
解决:切换到国外
网友评论