我在ovh上有一个vps,其中许多站点通过 “ sites-aviable.conf”(Apache)。
需要考虑的事情是我的vps没有域名,而只是由ovh提供的名称,因此,如果我尝试在某些可以使用ssl证书的机构上使用它,则可以使用它!
我需要为某些站点设置https而不是http,所以我开始使用open ssl生成自签名证书。
然后,我检查端口443是否处于侦听状态,并且看起来还可以。
然后,我将.env文件上的APP_URL
从http更改为https,但是没有任何变化。
sites-aviable.conf
包含类似内容的
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/AAAA/public
ServerName http://xxxxxxxxxxxx.net
Alias /web2 /var/www/html/BBBBB/public
<Directory /var/www/html/AAAAA>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
<Directory /var/www/html/BBBBB>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
因此,即使对于443端口,也应该复制给我,否则我错了吗? (我尝试将80更改为443,但没有用)
我尝试添加相同的“ sites-aviable.conf” 这部分:
DocumentRoot /var/www/html/AAAAAAA/public
ServerName http://XXXXXXXXXXX.net
Redirect permanent / https://XXXXXX.net
在<VirtualHost *:80>
部分上,然后在下面添加以下内容:
<VirtualHost _default_:443>
ServerName https://XXXXXXXXXX.net
DocumentRoot /var/www/html/AAAAAAAA/public
SSLEngine On
</VirtualHost>
如何将其设置为服务器?
如果我使用https访问网址,则会收到apache错误“找不到”
答案 0 :(得分:1)
如果要同时支持http和https,则需要为端口80和端口443定义一个虚拟主机。但是,在端口443的虚拟主机中,还需要指定SSL证书文件和SSL证书。密钥文件。
因此,只需复制http定义并更新端口和SSL信息。您的.conf文件将类似于以下内容(基于您在问题中提供的VirtualHost定义。
# http
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/AAAA/public
ServerName xxxxxxxxxxxx.net
Alias /web2 /var/www/html/BBBBB/public
<Directory /var/www/html/AAAAA>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
<Directory /var/www/html/BBBBB>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# https
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/AAAA/public
ServerName xxxxxxxxxxxx.net
Alias /web2 /var/www/html/BBBBB/public
# Your SSL configuration. Update the File and KeyFile information
# below to point to your SSL certificate.
SSLEngine on
SSLCertificateFile "/etc/ssl/certs/ssl-cert-snakeoil.pem"
SSLCertificateKeyFile "/etc/ssl/private/ssl-cert-snakeoil.key"
<Directory /var/www/html/AAAAA>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
<Directory /var/www/html/BBBBB>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
确保更新配置后重新启动apache。
此外,您的https网址现在应该可以使用,但是由于您使用的是自签名证书,因此您的浏览器仍然会抱怨它不安全且不受信任。我假设这是针对开发环境的,所以这不应该成为问题。如果这是供他人使用的生产站点,那么您应该从受信任的授权机构那里获取真实的SSL证书(LetsEncrypt具有免费的SSL证书)。