Kos*_*agi 8 apache django ssl https mod-wsgi
我从namecheap.com购买了SSL证书,并将所需文件放在我的Ubuntu服务器上(key&crt's).我正在使用mod_wsgi来为Apache提供Django应用程序.我在安装SSL证书时遇到问题.
当前配置(/etc/apache2/sites-available/000-default.conf)
<VirtualHost *:80>
ServerAdmin admin@example.com
#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>
Run Code Online (Sandbox Code Playgroud)
我已经注释掉了SSL证书的行.目前,我的应用程序运行正常,但是当我取消注释行以启用SSL证书时,我的站点提供来自/ var/www而不是应用程序的文件.有任何想法吗?
leh*_*ins 22
您的问题是您的apache仅配置为端口80,因此它不提供页面https(端口443).
对于此示例,我假设您只想为您的网站提供服务https,因此以下是您的配置应该如何显示的样子.
这是你的: 000-default.conf
<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@example.com
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>
Run Code Online (Sandbox Code Playgroud)
现在这里是default-ssl.conf:
<VirtualHost *:443>
ServerName example.com
ServerAdmin admin@example.com
# 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>
Run Code Online (Sandbox Code Playgroud)
配置完成后,我们需要打开ssl站点并(可选)重写mod:
> sudo a2ensite default-ssl
> sudo a2enmod rewrite
> sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16686 次 |
| 最近记录: |