• 每天进步一点点!

文章分类

推荐网站

常用手册

Nginx配置免费的SSL证书【原创】

<<返回

2025-04-21 18:22:42

安装certbot.

https://certbot.eff.org/

选择操作系统和web服务器

centos 7需要安装epel源

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install certbot-nginx

 

在命令行下运行下面的命令生成证书

certbot certonly --cert-name www.hiworld.com -d www.hiworld.com -d hiworld.com --webroot -w /data/www/hiworld/web --email abc@qq.com --no-eff-email --agree-tos


certbot certonly --cert-name hiworld-api-certbot -d api.hiworld.com --webroot -w /data/www/php/ladder/frontend/web --email abc@qq.com --no-eff-email --agree-tos
certbot certonly --cert-name hiworld-web-certbot -d www.hiworld.com -d hiworld.com --webroot -w /data/www/php/ladder_web --email abc@qq.com --no-eff-email --agree-tos
certbot certonly --cert-name hiworld-mobile-certbot -d m.hiworld.com --webroot -w /data/www/php/dist --email abc@qq.com --no-eff-email --agree-tos

--cert-name 证书名称
-d 域名
--webroot -w web站点的根目录,注:此处应和nginx的root保持一致,certbot会在该目录下生产.well-konwn目录,并且该目录下生产的文件要可以访问
--email 邮件地址 此处加上这个选项,就不要在生成时在命令行输入了 
--agree-tos 此处加上这个选项,就不要在生成时在命令行输入了 

 

centos7.3报错:

ImportError: No module named 'requests.packages.urllib3'

解决办法:

pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3

 

再次执行生成证书的脚本,结果又报错了:

Non-ASCII domain names not supported.To issue for an Internationalized Domain Name, use Punycode.

之所以出现这个错误是疑问不小心在hiworld.com后面加个【两】个空格,第二个空格是中文的空格无法识别,删除掉后边那个空格就好了。

可以查看/tmp/tmpXXXXXX查看执行日志,一版可以看到出错的原因。

 

注意:certbot生成的证书有效期为90天,90天后需要执行下面的命令来延期,当然,最好将这个命令写入cron,这样就可以在证书过期前(如2个月执行一次)延期

certbot renew

 

nginx配置

server {
    #listen       80;
    listen 443 ssl;
    server_name  hiworld.findingschool.net;

    root /var/www/hiworld_cms/web/;
    index index.php;
    charset utf-8;

    #access_log logs/hi.fs.net.access.log  main;
    #error_log  logs/hi.fs.net.error.log;

    access_log /var/log/nginx/hiworld.findingschool.net_access.log;
    error_log /var/log/nginx/hiworld.findingschool.net_error.log;

   ssl_certificate /etc/letsencrypt/live/hiworld.ntest.cn/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/hiworld.ntest.cn/privkey.pem;
   ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:10m;

    
    location ~ .*.(ico|gif|jpg|jpeg|png|bmp|swf)$ {
        expires 30d;
    }

    location ~ .*.(js|css)$ {
        expires 10d;
    }

    location / {
        try_files $uri /index.php?$args;
    }

    location /reserves{
        alias /var/www/html/yss/hiworld_cms/reserves/;
        location ~ .php$ {
            fastcgi_split_path_info ^(.+?.php)(/.*)?$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    } 

    #location /reserves/{
    #    alias /var/www/html/yss/hiworld_cms/reserves/;
    #}

    location ~ .php$ {
        fastcgi_index  index.php;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

 

 

上一篇:linux服务器查看公网IP信息的方法

没有下一篇

文章评论

  • 暂无评论

发表评论

昵称:

内容:

发表评论