zoukankan      html  css  js  c++  java
  • Let's Encrypt,免费好用的 HTTPS 证书

    https://imququ.com/post/letsencrypt-certificate.html

    1、

    openssl genrsa 4096 > account.key

    2、私钥

    openssl genrsa 4096 > domain.key

    3、csr文件生成

    DNS域名,可以多个,都要可以访问,注意用到了上面生成的文件

    openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]
    subjectAltName=DNS:yoursite.com,DNS:www.yoursite.com")) > domain.csr

    其中,openssl.cnf文件位置,可以查找:

    find / -name 'openssl.cnf' 

    4.1、验证准备

    目录

    mkdir ~/www/challenges/

    访问引导,注意目录,不要忘记reload生效

    server {
    listen 80; server_name www.yoursite.com yoursite.com;    #验证访问 location
    ^~ /.well-known/acme-challenge/ { alias /home/xxx/www/challenges/; try_files $uri =404; } location / {
         #其他访问转向https rewrite
    ^/(.*)$ https://yoursite.com/$1 permanent; } }

    4.2 脚本文件

    https://github.com/diafygi/acme-tiny  需要及时更新

    5 验证

    注意用到了上面生成的两个文件,并提供验证目录

    python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir ~/www/challenges/ > ./signed.crt

    通过验证后,当前目录下就会生成一个 signed.crt 证书文件。

    6 合并证书

    wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem
    cat signed.crt intermediate.pem > chained.pem

    7开启(nginx配置,其他和http配置一样)

    server {
        server_name YOUR_DOMAINNAME_HERE;
        listen 443;
        ssl on;
        ssl_certificate     ~/www/ssl/chained.pem;
        ssl_certificate_key ~/www/ssl/domain.key;
    }

    6自动更新脚本

    Let's Encrypt 签发的证书只有 90 天有效期,用脚本定期更新。

    脚本内容和上面步骤一样,验证并获得证书,合并证书,最后重载nginx,注意目录

    #!/bin/bash
    
    cd /home/xxx/www/ssl/
    python acme_tiny.py --account-key account.key --csr domain.csr --acme-dir /home/xxx/www/challenges/ > signed.crt || exit
    wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem
    cat signed.crt intermediate.pem > chained.pem
    service nginx reload

    7定期执行脚本

    可执行权限

    chmod a+x renew_cert.sh

    定期执行(每月一次)

    0 0 1 * * /home/xxx/shell/renew_cert.sh >/dev/null 2>&1
  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/mitang/p/6034828.html
Copyright © 2011-2022 走看看