web-dev-qa-db-ja.com

Apacheの追加ポートにSSL証明書を設定するにはどうすればよいですか?

簡単な質問です。Webサーバーの他のポートにSSL証明書をインストールする方法を知りたいだけです。 Webアプリケーションで有効なSSL証明書を取得できるようにしようとしています。 Apache2を使用します。 virtualhostファイルを編集しようとしました。私が何をしようとしているかさえわかりません。

1
Dan Vu

Apacheの/etc/Apache2/ports.confを変更して、Apacheにこれらの異なるポートでリッスンするように通知します。

Listen 8080
<IfModule ssl_module>            
        Listen 446
</IfModule>

手順は次のとおりです。

  1. SSL証明書を作成します。

    • 証明書を追加するディレクトリを作成します。

      mkdir -p /etc/Apache2/ssl/example.com
      
    • 自己署名証明書を作成します。

      Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/Apache2/ssl/example.com/Apache.key –out /etc/Apache2/ssl/example.com/Apache.crt
      
  2. Sudo a2enmod sslでsslモジュールを有効にします

  3. Sudo nano /etc/Apache2/sites-available/example.confを使用して、Virtualhostファイル(example.confと呼ばれる)にエントリを作成します。

    <VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        ServerName example.com
        DocumentRoot /var/www/html
    
    </VirtualHost>
    
    
    <IfModule mod_ssl.c>
    <VirtualHost *:446>
    
        ServerAdmin webmaster@localhost
        ServerName example.com
        DocumentRoot /var/www/html
    
        #   SSL Engine Switch:
        #   Enable/Disable SSL for this virtual Host.
        SSLEngine on
    
        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/Apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile /etc/Apache2/ssl/example.com/Apache.crt
        SSLCertificateKeyFile /etc/Apache2/ssl/example.com/Apache.key
    </VirtualHost>
    
    </IfModule>
    
  4. ポートを/etc/Apache2/ports.confファイルに追加して、新しいポートでリッスンするようApacheに指示します。

    Listen 8080
    <IfModule ssl_module>            
        Listen 446
    </IfModule>
    
    <IfModule mod_gnutls.c>
        Listen 446
    </IfModule>
    
    • これは、446に対してポート443でSSLトラフィックをリッスンするようにApacheに指示します
  5. 設定ファイルを有効にします。

    Sudo a2ensite example
    
  6. Apacheを再起動します。

    Sudo systemctl restart Apache2
    
3
George Udosen

まず、これらの答えを読む必要があります。

上記の回答に基づいた手順は次のとおりです。

  • 追加のポート専用の新しいVirtualHost構成ファイルを作成します。これがポート99であり、設定ファイル名がhttps-99.confであると仮定しましょう:

    Sudo nano /etc/Apache2/sites-available/https-99.conf
    

    https-99.confの内容は次のようになります。

    <IfModule mod_ssl.c>
    
    Listen 99
    
    <VirtualHost *:99>
    
            ServerName www.example.com
    
            DocumentRoot /var/www/html-99
    
            <Directory /var/www/html-99>
                    Options None FollowSymLinks
                    AllowOverride None
                    # To enable .htaccess Overrides: AllowOverride All
                    DirectoryIndex index.html index.php
                    Order allow,deny
                    Allow from all
                    Require all granted
            </Directory>
    
            ErrorLog ${Apache_LOG_DIR}/https-99.error.log
            CustomLog ${Apache_LOG_DIR}/https-99.access.log combined
    
            SSLEngine on
            SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
            SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem
    
    </VirtualHost>
    
    </IfModule>
    

    上記のコンテンツをコピーし、nanoで使用: Shift+Insert ペースト用; Ctrl+O そして Enter 保存用; Ctrl+X 終了の場合

  • 構成ファイルを有効にします。

    Sudo a2ensite https-99.conf
    
  • 生成 Let's Encrypt 証明書ファイル:

    Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d www.example.com
    

    [email protected]およびwww.example.comは実数でなければなりません。

  • ポート99をファイアウォールに開きます:

    • UFW を使用すると、次のコマンドでそれを実行できます:Sudo ufw allow 99/tcp

    • IPTablesSudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPTを使用する場合

  • DocumentRootディレクトリを作成します。

    Sudo mkdir /var/www/html-99
    
  • いくつかの簡単なコンテンツをDocumentRootディレクトリに配置します。

    echo 'Hello!!!' | Sudo tee /var/www/html-99/index.html
    
  • Apacheの構成をリロードします。

    • Ubuntu 14.04:Sudo service Apache2 reload
    • Ubuntu 16.04:Sudo systemctl reload Apache2.service
  • ブラウザでhttps://www.example.com:99を開いてみてください。結果は次のようになります。

    enter image description here

3
pa4080