我正在尝试使用 HTTPS 设置我的应用程序,我遵循了指南这里正确地做到这一点,但它不起作用。
我的应用程序在端口 80 (http) 上完美运行,当我打开 443 (https) 的自动重定向时,当我尝试通过浏览器访问它时,它会给我一个 403 禁止访问。在 Apache2 错误日志中,我可以看到消息“AH01276:无法提供目录 /var/my_app_location/:没有匹配的 DirectoryIndex”
conf文件从80到443的区别基本如下:
端口号
存在于 443 文件配置中:
- 443 文件配置中存在“IfModule mod_ssl.c”
- 包括 letsencrypt
- SSL证书文件
- SSL证书密钥文件
- <Directory "/var/my_app_location/">AllowOverride none 要求全部授予
有人可以指导我吗?
更新 这是虚拟主机文件:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mydomain.com.br
ServerAlias www.mydomain.com.br
DocumentRoot /var/netcore/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine off
RewriteCond %{SERVER_NAME} =www.mydomain.com.br [OR]
RewriteCond %{SERVER_NAME} =mydomain.com.br
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}[END,NE,R=permanent]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName www.mydomain.com.br
ServerAlias *.mydomain.com.br
DocumentRoot /var/netcore/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/netcore">
AllowOverride none
Require all granted
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mydomain.com.br/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com.br/privkey.pem
</VirtualHost>
</IfModule>
答案1
解决了。对于 Http,还有另一个补充配置 (/etc/apache2/conf-enabled),它启用了反向代理,将流量重定向到正在运行的本地服务 (net core app)。
解决方案是将此反向代理配置也包含在 443 虚拟主机文件中。