Namecheap.comからSSL証明書を購入し、必要なファイルをUbuntuサーバー(キーとcrt)に配置しました。 mod_wsgiを使用して、ApacheでDjango=アプリケーションを提供しています。SSL証明書のインストールに問題があります。
現在の構成(/etc/Apache2/sites-available/000-default.conf)
<VirtualHost *:80>
ServerAdmin [email protected]
#DocumentRoot /var/www/html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
#Django Application
Alias /static /home/Django/professor/static_root
<Directory /home/Django/professor/static_root>
Require all granted
</Directory>
<Directory /home/Django/professor/professor>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess professor python-path=/home/Django/professor:/home/Django/professor-vm/lib/python2.7/site-packages
WSGIProcessGroup professor
WSGIScriptAlias / /home/Django/professor/professor/wsgi.py
#ServerName example.com
#SSLEngine on
#SSLCertificateFile /etc/Apache2/ssl/server.crt
#SSLCertificateKeyFile /etc/Apache2/ssl/server.key
#SSLCACertificateFile /etc/Apache2/ssl/intermediate.crt
</VirtualHost>
SSL証明書の行をコメントアウトしました。現在、私のアプリケーションは正常に実行されていますが、SSL証明書を有効にするために行のコメントを解除すると、私のサイトはアプリケーションではなく/ var/wwwからファイルを提供します。何か案は?
あなたの問題は、Apacheがポート80に対してのみ設定されているため、https
(ポート443)を介してページを提供しないことです。
この例では、https
を介してのみWebサイトにサービスを提供することを想定しているため、構成はおおよそどのようになりますか。
これがあなたです:000-default.conf
<VirtualHost *:80>
ServerName example.com
ServerAdmin [email protected]
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
# This is optional, in case you want to redirect people
# from http to https automatically.
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_Host}$1 [R=301,L]
</VirtualHost>
今ここにdefault-ssl.conf
:
<VirtualHost *:443>
ServerName example.com
ServerAdmin [email protected]
# Django Application
Alias /static /home/Django/professor/static_root
<Directory /home/Django/professor/static_root>
Require all granted
</Directory>
<Directory /home/Django/professor/professor>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess professor python-path=/home/Django/professor:/home/Django/professor-vm/lib/python2.7/site-packages
WSGIProcessGroup professor
WSGIScriptAlias / /home/Django/professor/professor/wsgi.py
SSLEngine on
SSLCertificateFile /etc/Apache2/ssl/server.crt
SSLCertificateKeyFile /etc/Apache2/ssl/server.key
SSLCACertificateFile /etc/Apache2/ssl/intermediate.crt
</VirtualHost>
構成が完了したら、sslサイトをオンにし、(オプションで)modを書き換える必要があります。
> Sudo a2ensite default-ssl
> Sudo a2enmod rewrite
> Sudo service Apache2 reload
alexeyの回答を完了するには、問題が発生したときに、000-default.confサイトを無効にして、SSL構成のみを使用する必要がありました。