Java Web 服务在 http 上运行但在 https 上运行不成功

Java Web 服务在 http 上运行但在 https 上运行不成功

我已在我的网站上安装了 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路径中缺少一个或sURL 中多了一个。

但是,如果我们假设路径应该包含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 的行,但如果有其他不同,则问题可能就出在这里。

相关内容