web-dev-qa-db-ja.com

ubuntu Apache2 ec2インスタンスでSSLを正しく有効にする方法は?

SSL用にubuntu(14.04.2)Apache2(2.4.7)サーバーをセットアップしましたが、証明書が見つかりません。 Ubuntuは静的IPが有効なEC2インスタンスで実行されており、その静的IPへのDNSレコードで443ポートとドメイン名theaudioserver.comが有効になっています。サーバーのセットアップ方法は次のとおりです。

  • 作成されたキー:openssl genrsa 2048 > privatekey.pem
  • 生成された証明書リクエスト:openssl req -new -key privatekey.pem -out csr.pem
  • csrとCAのSSL証明書を購入し、server.crtserver_bundle.crtのキーを保存しました
  • / etc/Apache2/sites-availableにssl.confファイルを追加しました。これはSSL用に構成されています。
    SSLStaplingCache shmcb:/tmp/stapling_cache(128000) <VirtualHost *:443>
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On Header always set
    Strict-Transport-Security "max-age=63072000; includeSubdomains;
    preload" Header always set X-Frame-Options DENY Header always set
    X-Content-Type-Options nosniff
    SSLCompression off SSLUseStapling on
    ServerName theaudioserver.com
    SSLEngine on
    SSLCertificateFile /home/ubuntu/certs/server.crt
    SSLCertificateKeyFile /home/ubuntu/certs/privatekey.pem
    SSLCertificateChainFile /home/ubuntu/certs/server_bundle.crt

    DocumentRoot /var/www/html/
</VirtualHost>
  • Sudo a2enmod sslでSSLを追加
  • apache2を正常に再起動しました(ログにエラーはありません)
  • また、Apache2が443をリッスンしているかどうかも確認しました。正しいリッスンを聞いているようです。Sudo netstat -anp | grep Apachetcp6 0 0 :::443 :::* LISTEN 3138/Apache2を提供します。

しかし、ドメインをテストすると、証明書が見つからないようです。

Ssllabs.comでは、No SSL certificates were found on theaudioserver.com. Make sure that the name resolves to the correct server and that the SSL port (default is 443) is open on your server's firewallを取得します。

https://52.24.39.22 を介してサーバーにアクセスすると、ドメイン名を介してアクセスしていないため、名前の不一致エラーが発生しますが、EC2のサーバーファイアウォールが設定されているようです正しく。

ここで何が悪いのですか?

5
user2212461

ポート443でサーバーに接続できません。ファイアウォールの問題のようです。 EC2セキュリティグループのファイアウォールでポート443を開いていますか。ホストのファイアウォールで開いていますか?


更新;

DNSが正しく設定されていない

Dig +short theaudioserver.com
52.25.39.220

一方、52 .24。39.220で接続できます。

2
user9517

Webサイトのルートディレクトリにある.htaccessファイルを使用して、非セキュアポートからのリクエストをセキュアポート(http://-> https://など)にリダイレクトします。

ファイルには次のようなものが含まれている必要があります。

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

以下を含むようにsites-availabledefaultを編集する必要があります。

DocumentRoot /var/www/html
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

これにより、.htaccessがそのディレクトリおよび含まれるすべてのディレクトリ、つまりサイト全体で作業できるようになります。

0
Ethan Bradley