安装certbot
#安装EPEL软件源数字7代表版本centos7 如果是6就改成6 5则改成5
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install certbot
#-w 项目目录 -d 域名 一个目录可以对应多个域名
certbot certonly --webroot -w /var/www/cnquwan.cn -d cnquwan.cn -d www.cnquwan.cn
/etc/letsencrypt/live/cnquwan.cn/
为证书安装目录
配置Nginx
#默认80端口跳转到https
server {
listen 80;
server_name www.cnquwan.cn;
server_name cnquwan.cn;
location /{
rewrite ^(.*)$ https://$host$1 last;
}
}
server {
listen 443 ssl;
ssl on;
server_name www.cnquwan.cn;
server_name cnquwan.cn;
ssl_certificate /etc/letsencrypt/live/cnquwan.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cnquwan.cn/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/cnquwan.cn/chain.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
gzip on; #开启gizip
gzip_buffers 32 4K;#压缩在内存中缓冲32块? 每块4K
gzip_comp_level 6 ;#压缩级别 推荐6
gzip_min_length 4000;#开始压缩的最小长度4bit
gzip_types text/css text/xml apploation/x-javascript;#只对CSS、XML、HTML、JS文件进行压缩
#charset koi8-r;
#access_log logs/host.access.log main;
root /var/www/cnquwan.cn;
location / {
try_files $uri $uri/ /index.php?$query_string;
index index.html index.htm index.php;
#如果是jpg、jpeg、gif、png、js、css则缓存一天
if ($fastcgi_script_name ~* \.[jpg|jpeg|gif|png|js|css] ) {
expires 1d;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
重新加载Nginx配置
/usr/local/nginx/sbin/nginx -s reload
自动更新证书
由于这个证书的时效只有90天,我们需要设置自动更新的功能,帮我们自动更新证书的时效。
测试证书的自动更新
certbot renew --dry-run
如果出现一切正常,添加一个安排自动更新的cron
crontab -e
添加配置:
30 4 * * 1 certbot renew --quiet
上面的执行时间为:每周一凌晨4点30分执行renew任务。