AWS EC 2でNODEJSアプリのために自由なSSLをセットアップする方法


最近、AWS EC 2で無料SSL証明書NODEJSアプリを設定する方法を考え出しました.そして、今までのことを共有したいと思います.
まず、以下の前提条件が必要です.
  • インスタンスがインストールされて
  • 任意のプロバイダから購入ドメイン

  • ステップ1.EC 2セットアップ

    インスタンスの作成
    Aを使いましたt2.micro Linuxのインスタンスを選択し、希望のインスタンスを選択して

    セキュリティグループ
    セットアップインバウンドセキュリティグループの設定80 , HTTPSポート443 , and 22 sshも同様です.

    エラスティックIP
    インスタンスの静的IPアドレスを割り当てる
  • ネットワークへのEC 2ダッシュボード
  • をクリックして割り当てる
  • 新しく生成された静的IPを選択します.ドロップダウンアクションをクリックします

  • あなたのインスタンスにssh
    EC 2ダッシュボードのインスタンスに移動します

    手順2.IPテーブルの設定
    Nodejs Expressサーバーがポート80/443にアクセスできないため、IPテーブルを設定する必要があります.私たちはHTTPSのためのポート8443(HTTPのための8000)を聞いて、それにトラフィックをリダイレクトするためにサーバーをセットアップします.
    # Lookup IP routing tables
    sudo iptables -t nat -L
    
    # Add HTTP port 80 and 443 traffic redirect rule
    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
    sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
    

    ステップ3.プライベートキー、CAバンドルとSSL証明書を生成する
    使いましょうSSL For Free 無料でキーとSSL証明書を生成するために.
  • まず、アカウントを作成する必要がありますSSL For Free
  • 証明書をクリック
  • ドメインまたはサブドメインを入力し
  • 無料のSSLと次のステップのための
  • 注文を完了し、無料で選択してください
  • 次に、ドメインを検証する必要があります
  • 最後に、我々のドメインを確認するのに少し時間がかかるでしょう
  • オーダーが発行されるならば、証明書をダウンロードしてください

  • ステップ4.ドメインルーティング
    次に我々のインスタンスをドメインプロバイダにルーティングします.
  • DNS管理ダッシュボード
  • クリエイトA Record エラスティックIPアドレスを値とし、SSL For Free
  • その後、いくつかの時間を待って設定をアクティブにする

  • ステップ5.認証活性化
    最後に、SSL証明書を適用する簡単なサーバを作成します.
  • まず、あなたのEC 2インスタンスへのssh
  • からの証明書のzipファイルをアップロードして抽出SSL For Free プロジェクトフォルダに
  • クリエイトindex.js ファイルを作成し、次のコードを書き込みます
  • 以下に簡単なサーバを作ります.
    const https = require('https');
    const fs = require('fs');
    const https_options = {
     ca: fs.readFileSync("ca_bundle.crt"),
     key: fs.readFileSync("private.key"),
     cert: fs.readFileSync("certificate.crt")
    };
    https.createServer(https_options, function (req, res) {
     res.writeHead(200);
     res.end("Welcome to Node.js HTTPS Server");
    }).listen(8443)
    
  • ランnode index.js
  • 今すぐあなたのブラウザを開き、ドメインに移動
  • すべてが正しく設定されている場合は、ブラウザのアドレスバーに緑色のhttpsが表示されます.

  • フォルダ構造
    Node Project
    │   index.js
    │   private.key        // Zip file from SSL For Free
    │   ca_bundle.crt      // Zip file from SSL For Free
    │   certificate.crt    // Zip file from SSL For Free