acmeを使用します.sh無料で自動的に更新されたHTTPS証明書を削除


前言
ずっとhttpsをやめたいと思っていましたが、最近はちょうど空いていて、実現しました.以前、無料HTTPSの証明書をすばやく引くことを教えてくれた文章を見たことがあります.Certbotを通じてLet's Encryptの証明書を管理しています.使用前にライブラリをインストールする必要があります.あまり友好的ではありません.ローマに通じる道とは、他にもできる方法があるに違いない.
研究の結果、acmeが発見された.shこのライブラリ、これはShellスクリプトで書かれていて、他のものをインストールする必要はありません.比較的純粋で、自分に合っていると思って、プロセスを記録します.
準備作業
  • 解析されたドメイン名(httpでアクセス可能).
  • サーバの443ポートファイアウォールを開きます.

  • ステップ
    一、acmeをインストールする.sh
    curl https://get.acme.sh | sh

    このコマンドは後でacme.sh ~/.acme.sh/ディレクトリにインストール~/.bashrcを再ロード
    source ~/.bashrc 

    二、証明書の生成
    acme.sh  --issue -d www.your-domin.com  --webroot  /srv/your-domin.com/

    このコマンドの意味はhttp方式でwww.your-domin.comは証明書を生成し、/srv/your-domin.com/はあなたのサイトのルートディレクトリです.(この過程でacme.shは全自動的に検証ファイルを生成し、ウェブサイトのルートディレクトリに配置し、自動的に検証を完了し、最後に自動的に検証ファイルを削除する.)
    三、nginxディレクトリへの証明書のインストールまたはcopy
    デフォルトで生成する証明書はすべてインストールディレクトリの下に置かれます:~/.acme.sh/,このディレクトリは一般にnginxやApacheに直接使用させることはできない.証明書を指定したディレクトリに置く必要があります./etc/nginx/ssl/ディレクトリの下に置くのが習慣です.acmeは、ターゲットの場所を指定するだけで証明書をインストールするために--installcertを提供し、証明書ファイルは対応する場所にcopyされます.まず、/etc/nginx/ssl/ディレクトリに保存します.
    mkdir /etc/nginx/ssl

    copy証明書とnginx reloadコマンドの指定
    acme.sh  --installcert  -d  www.your-domin.com   \
            --key-file   /etc/nginx/ssl/www.your-domin.com.key \
            --fullchain-file /etc/nginx/ssl/fullchain.cer \
            --reloadcmd  "service nginx force-reload"

    Servicenginx force-reloadは、acmeが自動的に更新されたときにnginxを再起動して証明書を有効にするためです.コマンドを実行すると、/etc/nginx/ssl/www.your-domin.com.keywww.your-domin.com.cerのファイルが多く表示されます.
    四、dhparamを生成する.pemファイル
    openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

    このステップは必須ではありませんが、後で配置するとssllabsを通過することが望ましいです.comは検証して、もしこのステップssl_dhparamが構成されていないとssllabsになる.comのスコアはBに下がった.A+が一番いいです.
    五、nginxの配置
    証明書のインストールが完了しました.次にnginxにこの証明書を使用させます.このサーバにはいくつかのサイトがありますが、現在は1つのサイトが証明書を構成しているだけなので、現在のサイトのconfだけを変更すればいいです.
    server {
        listen       80;
        server_name www.your-domin.com;
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        ssl_certificate /etc/nginx/ssl/www.your-domin.com.cer;
        ssl_certificate_key /etc/nginx/ssl/www.your-domin.com.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ...
    }
    ssl_prefer_server_ciphers on;この構成は、証明書のスコアを向上させることができます.ssl_dhparam /etc/nginx/ssl/dhparam.pem;は証明書の採点を高めることができて、このファイルは第4歩の時に生成したので、しなければこの文を書く必要はありません.nginx -t nginxの構成が正しいかどうかを検証し、systemctl restart nginxでnginxを再起動すれば、https://www.your-domin.com…を測る.
    六、証明書の更新
    Let's Encryptの証明書の有効期限は90日で、定期的に再申請する必要がありますが、acmeはインストール時に自動更新が設定されているので、この一歩は気にしなくても安心です.ここではacmeについて説明します.shの自動更新:acmeをインストールするとcronjobが自動的に作成され、毎日0:00時にすべての証明書が自動的に検出され、期限切れになり、更新が必要になると、自動的に証明書が更新されます.タスクの表示
    # crontab -l
    47 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

    手動renew証明書はこのコマンドで使用できます
    acme.sh --cron -f

    七、ソフトウェア自動更新の設定
    現在、acmeプロトコルとletsencrypt CAは頻繁に更新されているため、acme.shも同期を保つために常に更新.安心して力を節約するためには、ソフトウェアの自動更新を設定して、次のコマンドを実行すればいいのです.
    acme.sh  --upgrade  --auto-upgrade

    その他
    このサイトであなたの証明書レベルを検証することができます.私の上の構成によってAに格付けすることができます.https://www.ssllabs.com/sslte...
    参考記事
  • acme.sh説明
  • はacmeを用いる.sh NginxインストールLet’s Encryptに提供される無料SSL証明書
  • あなたのウェブサイトにHttpsアクセスを無料で開くことができて、緑の健康は小さくて清新です