Назад | Перейти на главную страницу

Веб-сервис Java работает по http, но не по https

У меня на сайте установлен SSL. Я написал веб-службу java и развернул ее в папке 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 webmaster@mydomain.com
    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 для служб? Что мне не хватает?

Спасибо

Вы пишете, что пытаетесь зайти на сервер по 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, но если что-то еще отличается, скорее всего, в этом и заключается ваша проблема.