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