我已在我的网站上安装了 SSL。我编写了一个 Java Web 服务并将其部署在 public_html/WEB-INF/service 文件夹中。现在我可以通过 http 访问我的服务(例如http://www.mydomain.com/services/myWebService?wsdl) 但是当我尝试通过 https 时,它给出了错误 404。
这是虚拟主机配置
<VirtualHost 44.123.123.123:443>
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /home/accountName/public_html
ServerAdmin [email protected]
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/mydomain.com combined
CustomLog /usr/local/apache/domlogs/mydomain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
## User accountName # Needed for Cpanel::ApacheConf
<IfModule mod_suphp.c>
suPHP_UserGroup accountName accountName
</IfModule>
<IfModule !mod_disable_suexec.c>
<IfModule !mod_ruid2.c>
SuexecUserGroup accountName accountName
</IfModule>
</IfModule>
<IfModule mod_ruid2.c>
RUidGid accountName accountName
</IfModule>
ScriptAlias /cgi-bin/ /home/accountName/public_html/cgi-bin/
SSLEngine on
SSLCertificateFile /etc/ssl/certs/www.mydomain.com.crt
SSLCertificateKeyFile /etc/ssl/private/www.mydomain.com.key
SSLCACertificateFile /etc/ssl/certs/www.mydomain.com.cabundle
CustomLog /usr/local/apache/domlogs/mydomain.com-ssl_log combined
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
<Directory "/home/accountName/public_html/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
# To customize this VirtualHost use an include file at the following location
Include "/usr/local/apache/conf/userdata/ssl/2/accountName/mydomain.com/*.conf"
</VirtualHost>
我是否也必须为服务配置 SSL?我遗漏了什么?
谢谢
答案1
您写道,您尝试使用 URL 访问服务器http://www.mydomain.com/services/myWebService?wsdl
,并且该服务器安装在 中public_html/WEB-INF/service
。这两个不匹配;s
路径中缺少一个或s
URL 中多了一个。
但是,如果我们假设路径应该包含s
,那么问题就出在您的 VirtualHost 设置上:
DocumentRoot /home/accountName/public_html
如果您的文件位于 中/home/accountname/public_html/WEB-INF/services
,则您需要使用 URL https://www.mydomain.com/WEB-INF/services/myWebService?wsdl
,或者您需要将 DocumentRoot 更改为/home/accountName/public_html/WEB-INF
。现在的设置方式是,您的服务器正在 中/home/accountName/public_html/services
而不是 中查找您的网站/home/accountName/public_html/WEB-INF/services
。
为了让 SSL 看起来与 HTTP 版本一样,最好的建议是获取两个虚拟主机文件,然后运行diff vh-http.conf vh-ssh.conf
以查看有什么不同。您可以忽略所有包含 SSL 的行,但如果有其他不同,则问题可能就出在这里。