zoukankan      html  css  js  c++  java
  • 用 Certbot-auto 在 letsencrypt.org申请免费 SSL 证书实现 HTTPS

    参考帖子
    https://www.cnblogs.com/lzpong/p/6433189.html
    https://www.cnblogs.com/756623607-zhang/p/11638506.html
    https://blog.csdn.net/qq_42649185/article/details/90266696

    cd ~ //到家目录里
    
    wget https://dl.eff.org/certbot-auto //下载角本
    
    chmod a+x certbot-auto //加权限
    
    service nginx stop 或者 systemctl stop nginx 或者 pkill -9 nginx //停止nginx
    
    [root@iZ2ze505h9bgsbp83ct28pZ ~]# ./certbot-auto
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    
    How would you like to authenticate and install certificates?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: Apache Web Server plugin (apache)
    2: Nginx Web Server plugin (nginx)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
    
    ** Invalid input **
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
    Plugins selected: Authenticator nginx, Installer nginx
    
    Which names would you like to activate HTTPS for?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: phpmyadmin.haimait.com
    2: test.haimait.com
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate numbers separated by commas and/or spaces, or leave input
    blank to select all options shown (Enter 'c' to cancel): 2
    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for test.haimait.com
    nginx: [error] invalid PID number "" in "/run/nginx.pid"
    Waiting for verification...
    Cleaning up challenges
    Deploying Certificate to VirtualHost /etc/nginx/conf.d/test.haimait.conf
    
    Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    change by editing your web server's configuration.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
    Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/test.haimait.conf
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Congratulations! You have successfully enabled https://test.haimait.com
    
    You should test your configuration at:
    https://www.ssllabs.com/ssltest/analyze.html?d=test.haimait.com
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
       /etc/letsencrypt/live/test.haimait.com/fullchain.pem
       Your key file has been saved at:
       /etc/letsencrypt/live/test.haimait.com/privkey.pem
       Your cert will expire on 2020-06-03. To obtain a new or tweaked
       version of this certificate in the future, simply run certbot-auto
       again with the "certonly" option. To non-interactively renew *all*
       of your certificates, run "certbot-auto renew"
     - If you like Certbot, please consider supporting our work by:
    
       Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
       Donating to EFF:                    https://eff.org/donate-le
    
    
    
    
    

    nginx配置

    建立文件 /etc/nginx/conf.d/test.haimait.conf

    server {
      listen 80;
      server_name  test.haimait.com;
    
      access_log  /var/log/nginx/test.haimait.access.log;
      error_log  /var/log/nginx/test.haimait.error.log;
      client_max_body_size 10m;
      location ~/(.well-known/pki-valtidation) {
          root /usr/share/nginx/html;
      }
      location / {
     #     add_header Access-Control-Allow-Origin *;
     #     add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
     #     add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
          proxy_pass  http://127.0.0.1:8822;
          proxy_redirect     off;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
          proxy_max_temp_file_size 0;
          proxy_connect_timeout      90;
          proxy_send_timeout         300;
          proxy_read_timeout         300;
          proxy_buffer_size          4k;
          proxy_buffers              4 32k;
          proxy_busy_buffers_size    64k;
          proxy_temp_file_write_size 64k;
          }
      location ~ ^/lovebook/ {
     #     add_header Access-Control-Allow-Origin *;
     #     add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
     #     add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
          proxy_pass  http://127.0.0.1:8833;
          proxy_redirect     off;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
          proxy_max_temp_file_size 0;
          proxy_connect_timeout      90;
          proxy_send_timeout         300;
          proxy_read_timeout         300;
          proxy_buffer_size          4k;
          proxy_buffers              4 32k;
          proxy_busy_buffers_size    64k;
          proxy_temp_file_write_size 64k;
          }
    }
    
    
    server {
       listen       443 ssl;
       server_name  test.haimait.com;
    
    
       ssl_certificate /etc/letsencrypt/live/test.haimait.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/test.haimait.com/privkey.pem;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;
       ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    
    location / {
    #      add_header Access-Control-Allow-Origin *;
    #      add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
    #      add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
          proxy_pass  http://127.0.0.1:8822;
          proxy_redirect     off;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
          proxy_max_temp_file_size 0;
          proxy_connect_timeout      90;
          proxy_send_timeout         300;
          proxy_read_timeout         300;
          proxy_buffer_size          4k;
          proxy_buffers              4 32k;
          proxy_busy_buffers_size    64k;
          proxy_temp_file_write_size 64k;
        }
    location ~ ^/lovebook/ {
    #     add_header Access-Control-Allow-Origin *;
    #     add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
    #     add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
          proxy_pass  http://127.0.0.1:8833;
          proxy_redirect     off;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
          proxy_max_temp_file_size 0;
          proxy_connect_timeout      90;
          proxy_send_timeout         300;
          proxy_read_timeout         300;
          proxy_buffer_size          4k;
          proxy_buffers              4 32k;
          proxy_busy_buffers_size    64k;
          proxy_temp_file_write_size 64k;
        }
    }
    
    
    
    

    nginx.conf 文件

    #   nformation on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user root;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   300;
        types_hash_max_size 2048;
        # 配置nginx上传文件最大限制
        client_max_body_size 50m;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  _;
           # root         /usr/share/nginx/html;
    
            root         /wwwroot;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
    
    #	location ~ .php$ {
    #  	  root   /wwwroot;
    # 	  fastcgi_pass 127.0.0.1:9000;
    # 	  fastcgi_index index.php;
    #	  fastcgi_param SCRIPT_FILENAME /wwwroot$fastcgi_script_name;
    #	  fastcgi_param PHP_INFO $1;
    #	  include  fastcgi_params;
    #	}
    
    
    
    
        }
    	
    # Settings for a TLS enabled server.
    #
    #    server {
    #        listen       443 ssl http2 default_server;
    #        listen       [::]:443 ssl http2 default_server;
    #        server_name  _;
    #        root         /usr/share/nginx/html;
    #
    #        ssl_certificate "/etc/pki/nginx/server.crt";
    #        ssl_certificate_key "/etc/pki/nginx/private/server.key";
    #        ssl_session_cache shared:SSL:1m;
    #        ssl_session_timeout  10m;
    #        ssl_ciphers HIGH:!aNULL:!MD5;
    #        ssl_prefer_server_ciphers on;
    #
    #        # Load configuration files for the default server block.
    #        include /etc/nginx/default.d/*.conf;
    #
    #        location / {
    #        }
    #
    #        error_page 404 /404.html;
    #            location = /40x.html {
    #        }
    #
    #        error_page 500 502 503 504 /50x.html;
    #            location = /50x.html {
    #        }
    #    }
    
    }
    
    
    
    

    service nginx start 或者 systemctl start nginx //启动nginx
    systemctl reload nginx
    systemctl stop nginx
    systemctl reload nginx

    netstart -tpln

    效果:

    更新证书

    # 更新证书
    ./certbot-auto renew --dry-run
    
    # 如果不需要返回的信息,可以用静默方式
    certbot renew --quiet
    
    #手动更新
    ./certbot-auto renew -v
    
    #自动更新
    ./certbot-auto renew --quiet --no-self-upgrade
    
    #定时更新
    加入定时任务  crontab -e 
    0 4 1 */2 *  /usr/bin/certbot-auto  renew --quiet    #每两个月的一号凌晨4点更新一次
    
  • 相关阅读:
    微信小程序用setData修改数组或对象中的一个属性值,超好用,最简单的实现方法,不容错过!大神们 都 在 看 的方法!!!
    pythonchallenge1
    pythonchallenge4
    pythonchallenge7
    pythonchallenge9
    pythonchallenge8
    pythonchallenge2
    pythonchallenge0
    递归排序
    pythonchallenge3
  • 原文地址:https://www.cnblogs.com/haima/p/12419433.html
Copyright © 2011-2022 走看看