Ubuntu 16.04での自己署名TLS / SSL証明書を使用したApacheの設定

SSLとその後継であるTLS(Secure Sockets Layer / Transport Layer Security)は、クライアントとサーバーの間に暗号化の層を追加します。このテクノロジーを使用しない場合、データはプレーンテキストでサーバーに送信されるため、サードパーティはサーバーが送受信するすべての情報を読み取ることができます。

このチュートリアルでは、SSL / TLS証明書を作成し、Ubuntu 16.04上のApache 2.4でアクティブ化する方法を説明します。私は、Apacheがすでにセットアップされ、実行されていると想定しています。LAMPスタックのインストール方法については、このVultrドキュメントをご覧ください。

注意

SSL / TLS証明書は通常、信頼できるCA(認証局)によって生成されます。自分で生成すると、署名者になります。つまり、ブラウザーは証明書のIDを信頼する必要があるかどうかを確認できず、ユーザーに警告します。このアラートをバイパスすることは可能ですが、公開サイトは信頼できるCAによって署名された証明書を使用する必要があります。 暗号化しましょう。証明書を無料で提供するCAです。ApacheとUbuntu 16.04に証明書をインストールする方法については、こちらをご覧ください

内部アプリケーションの場合、特にドメイン名がない場合は、自己署名証明書の使用が有効な場合があります。


ステップ1:証明書を生成する

  1. まず、ファイルを保存する場所を作成しましょう。

    mkdir ~/certificates
    cd ~/certificates
    
  2. CSRと秘密鍵を生成します。

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    証明書要求の情報を要求します。適切な情報を入力します。

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    一般名は、ドメイン名またはサーバーのIPアドレスにする必要があります。また、メールに記入してください。

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. 次に、証明書をApache構成フォルダーに移動します。

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. 証明書の準備ができました!次に、証明書を使用するようにApacheを準備します。

ステップ2:ファイアウォールの構成

  1. TCPポート443が開いていることを確認する必要があります。このポートは、ポート80の代わりにSSL接続で使用されます。このチュートリアルでは、UFWを使用します。

  2. UFWが有効になっていることを確認します。

    sudo ufw enable
    
  3. ファイアウォールの事前定義済みApache設定を許可します。

    sudo ufw allow 'Apache Full'
    
  4. sudo ufw status」と入力すると、現在のルールのリストが表示されます。設定は次のようになります。

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. また、今後の接続のためにOpenSSHを許可する必要があります。

    sudo ufw allow 'OpenSSH'
    

ステップ3:Apache仮想ホストの構成

  1. デフォルトのApacheサイトのconfigディレクトリに移動します。

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. このファイルは、SSL証明書を探す場所をサーバーに指示します。コメントを削除すると、次の構成のようになります。

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. この行を編集します。

    ServerAdmin [email protected]
    
  4. これをServerAdmin行のすぐ下に追加します。

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. 次に、これらの行を証明書の場所で編集します。

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. 最終的なファイルは次のようになります。

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. ファイルを保存して閉じま��。

ステップ4:Apache SSLモジュールを有効にする

  1. 次のように入力して、SSLモジュールを有効にします。

    sudo a2enmod ssl
    
  2. 編集したばかりのサイトを有効にします。

    sudo a2ensite default-ssl.conf
    
  3. Apacheを再起動します。

    sudo service apache2 restart
    
  4. 新しい安全なウェブサイトにアクセスしましょう!ブラウザで開きます(必ずhttps://と入力してください)。

    https://YOUR_SERVER_IP
    

予想通り、証明書が無効であることをブラウザが警告します。これは、証明書が署名されていないために発生します。ブラウザに表示される手順に従って、サイトに進みます。

ステップ5:すべてのHTTPトラフィックをHTTPSにリダイレクトする(オプション)

  1. Apacheのデフォルトの仮想ホストファイルを開きます。

    nano /etc/apache2/sites-available/000-default.conf
    
  2. <VirtualHost *:80>タグ内に次の行を追加します。

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Apache設定をリロードします。

    sudo service apache2 reload
    

これで、すべてのWebサイトトラフィックが自動的にHTTPSにリダイレクトされます。



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、