我对网络或服务器完全陌生。
我的老板希望我设置一个 Traccar 服务器。一切都很顺利,直到我必须使用 SSL 保护连接。我安装了一个自签名 SSL 证书(我担心这还不够,因为我的防病毒软件在第一次连接时就说它不受信任)。但是,现在如果我输入我的域名(https://gps.mydomain.com) 我得到的是 Apache2 欢迎屏幕而不是 Traccar 应用程序,如果我通过 http 连接,我仍然可以访问它。我该如何解决这个问题?我这样做对吗,尤其是自签名 SSL 证书?服务器在租用的 VPS 上的 Ubuntu 18.04 上。提前致谢。
答案1
如果我输入我的域名(https://gps.mydomain.com)我看到的是 Apache2 欢迎屏幕而不是 Traccar 应用程序,如果我通过 HTTP 连接,我仍然可以访问它。
在 Apache 中,HTTPS 站点需要与 HTTP 站点分开配置,即使它们指向同一个根目录(您的 Traccar 应用程序)。您之所以看到 Apache 欢迎屏幕,是因为您没有为 设置 HTTPS 配置https://gps.mydomain.com
,因此 Apache 返回的是default-ssl
HTTPS 配置。
我该如何解决这个问题?
对于 Ubuntu 来说,你可能需要查看/etc/apache2/sites-available/default-ssl
并进行相应的编辑。在进行任何更改之前,你可能需要进行备份。
请注意,可以复制此文件(default-ssl
)并建立一个全新的 SSL虚拟主机(即保持default-ssl
完整并“按原样”工作并为其创建一个全新的配置https://gps.mydomain.com
)。
最小 SSL 虚拟主机示例
如果您决定保留default-ssl
原样并创建一个新的 SSL 虚拟主机,以下是创建工作 SSL 虚拟主机所需的最少信息:
<VirtualHost *:443>
ServerName gps.mydomain.com:443
#ServerAlias gps.mydomain.com
DocumentRoot "/path/to/traccar/application"
ServerAdmin example@localhost
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile "/path/to/your/certificate/file.crt"
SSLCertificateKeyFile "/path/to/your/key/file.key"
#Required by the first SSL virtualhost - Example
SSLProtocol TLSv1
</VirtualHost>
将此文件另存为 eg /etc/apache2/sites-available/gps.mydomain.com-ssl
(或任何你喜欢的名称)。如果你选择此选项,请不要忘记:
运行
sudo a2ensite example_filename
以“启用”该站点(这会创建必要的符号链接)。运行
sudo apachectl configtest
以确保配置中没有错误。Syntax OK
运行命令后您应该会看到。使用 重新启动 Apache
sudo systemctl restart apache2
以使更改生效(如果您只是修改,这一步也是必要的default-ssl
)。