这篇文章上次修改于 2866 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

注:原创,转载请注明来处

1、使用 Certbot 客户端

yum install certbot //安装certot客户端

2、使用客户度获取证书

#创建临时目录,可能要修改nginx rewrite 规则才能从外网访问
mkdir -p /data/www/9527/.well-known/acme-challenge
#--webroot 参数:指定使用临时目录的方式. -w 参数:指定后面-d 域名所在的根目录, 如果一次申请多个域的, 可以附加更多 -w...-d... 这段.
certbot certonly --webroot --email 578154898@qq.com -w /data/www/9527 -d 9527.shutung.com

3、查看生成的证书

生成的证书在 /etc/letsencrypt/live/目录下面对应的域名文件夹下

4、证书续期

免费生成的证书有效期是3个月,可以做一个crontab任务自动续期

打开crontab

vi /etc/crontab

写入下面的任务列

0 0 1 */3 *  root certbot renew --quiet && service nginx restart

保存,重新加载crontab

crontab /etc/crontab
#查看任务列表
crontab -l

 

5、配置nginx

server {
    listen 443;
    ssl on;
    ssl_certificate     /etc/letsencrypt/live/9527.shutung.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/9527.shutung.com/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:!ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:HIGH:!RC4-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 60m;
    server_name 9527.shutung.com;
    access_log  logs/9527_access.log combined buffer=32k;
    error_log   logs/9527_error.log crit;
    root        /data/www/9527/;
    resolver 114.114.114.114 valid=12000;
    location / {
        index           index.php index.html index.htm;
        if (!-e $request_filename) {
                                        rewrite ^/(.*)$ /index.php/$1 last;
                                }
    }
    location ~ .*\.php {
        include fastcgi_params;
        #fastcgi_pass  unix:/tmp/php-fcgi.sock;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_split_path_info  ^(.+\.php)(/.*)$;
                fastcgi_param  PATH_INFO $fastcgi_path_info;
    }
}