牛が迫る!シナリオ一つでシステムをhttpsにアップグレードしました。永久無料です。


牛逼!竟然用一个脚本就把系统升级到 https了,还永久免费_第1张图片
本文
現在、多くの駅長は自分のサイトをhttpからhttpsにアップグレードすることを考慮しています。安全性だけではなく、第三者プラットフォームの制限のため、Googleブラウザがhttpサイトを安全でないサイトと表記しています。WeChatプラットフォームがアクセスを要求するマイクロクレジットシーケンスはhttpsなどを使用しなければなりません。
httpサイトをhttps駅にアップグレードするにはどうすればいいですか?
httpとhttpsの違い
データ伝送の安全のためにhttpsはhttpに基づいてsslプロトコルを追加し、sslプロトコルは証明書によってサーバのアイデンティティを検証し、ブラウザとサーバ間の通信暗号化を行う。httpをhttpsにアップグレードするには、httpサイトにCA証明書を追加すればいいです。
現在CA証明書を取得するには2つの方法があります。
  • 有料CA証明書
  • を購入する。
  • 無料証明書の有料CA証明書は、アリ雲、テンセント雲などの大手サービス提供業者に販売されています。牛逼!竟然用一个脚本就把系统升级到 https了,还永久免费_第2张图片
  • これは小さい会社のプラットフォームにとっても、個人のサイトにとっても、かなりの出費です。
    Letsencryptは無料、自動化、開放された証明書発行機構で、発行された証明書は一回の有効期間は三ヶ月です。
    今日オススメのこのスクリプトacme.shは、acmeプロトコルを実現しました。自動的にLetsencryptからCA証明書を更新し続けることができます。ダウンロード先は以下の通りです。
    https://github.com/Neilpang/acme.sh
    
    acme.shを取り付けます
    acme.shをインストールするのは簡単です。一つのコマンドでいいです。
    curl get.acme.sh | sh
    
    一般ユーザーとrootユーザーはインストールして使用できます。インストールプロセスは以下のステップに進みました。
    1、acme.shをホームディレクトリにインストールします。
    ~/.acme.sh/
    
    bashのaliasを作成します。ご利用に便利です。alias acme.sh=~/.acme.sh/acme.sh
    2、自動的にあなたのためにcronjobを作成して、毎日0時に自動的にすべての証明書を検査します。もし期限が切れたら、更新が必要です。証明書は自動的に更新されます。インストールの過程で既存のシステムの機能やファイルは汚染されません。すべての変更はインストールディレクトリに制限されます。
    ~/.acme.sh/
    
    証明書を生成
    acme.shはacmeプロトコルでサポートされているすべての検証プロトコルを実現しています。一般的には、httpとdns検証の2つの方法があります。
    1、http方式は、あなたのウェブサイトのルートディレクトリの下にファイルを置く必要があります。ドメインの所有権を検証し、検証を完了して、証明書を作成することができます。
    acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
    
    acme.shは自動的に検証ファイルを作成し、サイトのルートディレクトリに置いて、自動的に検証を完了します。最後に、有効に検証ファイルを削除します。全体のプロセスには副作用がありません。
    もしあなたがapacheサーバを使っていたら、acme.shはapacheの設定から自動的に検証を完了することができます。ウェブサイトのルートディレクトリを指定する必要はありません。
    acme.sh --issue -d mydomain.com --apache
    
    もしあなたが使用しているのがnginxサーバーか、または逆世代であれば、acme.shはまたインテリジェントなnginxの構成から自動的に検証を完了することができます。ウェブサイトのルートディレクトリを指定する必要はありません。
    acme.sh --issue -d mydomain.com --nginx
    
    注意:apacheでもnginxでも、acme.shは検証が完了すると、以前の状態に戻ります。勝手に設定を変更しません。利点は、配置が壊れて心配する必要はありませんが、欠点もあります。自分で設定する必要があります。でないと、証明書を生成することに成功します。ウェブサイトはhttpsにアクセスできません。でも安全のために、やはり自分で設定を変えましょう。
    もしあなたがまだウェブサービスを実行していないなら、80ポートは空いています。acme.shは自分がwebserverであるふりをしてもいいです。一時的に80ポートで聞いて、検証を完了します。
    acme.sh --issue -d mydomain.com --standalone
    
    2、dns方式で、ドメイン名にtxt解析記録を追加し、ドメイン名の所有権を検証する。
    このような方法の利点は、サーバーが必要ではなく、インターネットのipが必要ではなく、dnsの解析記録だけで検証が完了することです。しかし、悪い点は、Automatic DNS APIを同時に構成しないと、このような方法でacme.shは自動的に証明書を更新できなくなり、毎回手動でドメインの所有権を再解析して検証する必要があります。
    acme.sh --issue --dns -d mydomain.com
    
    その後、acme.shは対応する解析記録を生成して表示します。あなたはあなたのドメイン名管理パネルにこのtxt記録を追加するだけでいいです。
    解析が完了したら、証明書を再生成します。
    acme.sh --renew -d mydomain.com
    
    注意:2回目はここで使うのは--renewです。
    dns方式の真の強みは、ドメイン名解析者が提供するapiを用いて自動的にtxtレコードを追加して検証を完了することである。
    acme.shは現在Coudflare、dnspod、cloudxns、godaddy、overhなどの数十種類の解析者の自動集積をサポートしています。
    copy/証明書のインストール
    前の証明書が生成されたら、次に証明書のコピーを本当に必要なところに送ります。
    デフォルトで生成された証明書はインストールディレクトリの下に置かれています。例えば、この下のファイルを直接nginx/apacheのプロファイルに使わせないでください。この中のファイルは全部内部で使うので、ディレクトリの構造が変わるかもしれません。
    正しい使い方は--installcertコマンドを使用して、目的の位置を指定し、その後、証明書ファイルはcopyによって該当の位置に移動します。
    acme.sh --installcert -d .com 
    --key-file /etc/nginx/ssl/.key 
    --fullchain-file /etc/nginx/ssl/fullchain.cer 
    --reloadcmd "service nginx force-reload"
    
    ここで使っているのはservice nginx force-reloadで、service nginx reloadではなく、テストによると、reloadは証明書を再読み込みすることができませんので、force-reloadを使います。
    Nginnxの配置ssl_certificateは/etc/inx/ssl/fullchain.cerを使用して、/etc/inx/ssl/cerではなくて、さもなくばSSL LabsのテストはChanises Incompletteeエラーを報告します。
    --installcertコマンドは、多くのパラメータを持って、ターゲットファイルを指定できます。また、reloadcmdを指定することができます。証明書の更新後、reloadcmdは自動的に起動され、サーバに有効になります。
    ここで指定したすべてのパラメータは自動的に記録され、将来証明書が自動的に更新された後、再度自動的に呼び出されます。
    証明書を更新
    現在の証明書は60日後に自動的に更新されます。何の操作も必要ありません。これからはこの時間が短縮されるかもしれませんが、自動的ですので、気にしないでください。
    acme.shを更新します
    現在acmeプロトコルとLetsencrypt CAは頻繁に更新されていますので、acme.shも同期を維持するために常に更新されています。
    acme.shを最新版にアップグレードします。
    acme.sh --upgrade
    
    手動でアップグレードしたくないなら、自動アップグレードを開始できます。
    acme.sh --upgrade --auto-upgrade
    
    その後、acme.shは自動的に更新されます。
    自動更新はいつでもオフにできます。
    acme.sh --upgrade --auto-upgrade 0
    
    エラーはどうしますか?エラーが発生したら、debug logsを追加してください。
    acme.sh --issue ..... --debug
      :
    acme.sh --issue ..... --debug 2
    
    リンク:https://www.toutiao.com/i6674...
    image