If you want to modify the cPanel-generated configuration, look at custom
config:

If you are using EA4:
https://documentation.cpanel.net/display/EA4/Modify+Apache+Virtual+Hosts+with+Include+Files
EA3 has a similar feature, but I can't find the documentation right now.

- Y

On Tue, Feb 7, 2017 at 4:15 PM, Spork Schivago <sporkschiv...@gmail.com>
wrote:

> Thank you.
>
> I have tried running curl -4 http://www.jetbbs.com/.well-known/test.html
>        and     curl -6 http://www.jetbbs.com/.well-known/test.html
>
>
> I'm posting a copy of the httpd -S output.
>
>
>
> httpd -S
> VirtualHost configuration:
> 45.33.78.219:80        is a NameVirtualHost
>          default server 45.33.78.219 (/etc/apache2/conf/httpd.conf:240)
>          port 80 namevhost 45.33.78.219 (/etc/apache2/conf/httpd.conf:240)
>          port 80 namevhost jetbbs.com (/etc/apache2/conf/httpd.conf:281)
>          port 80 namevhost cpcalendars.jetbbs.com
> (/etc/apache2/conf/httpd.conf:345)
>          port 80 namevhost cpcontacts.jetbbs.com
> (/etc/apache2/conf/httpd.conf:409)
>          port 80 namevhost webdisk.jetbbs.com
> (/etc/apache2/conf/httpd.conf:473)
>          port 80 namevhost webmail.jetbbs.com
> (/etc/apache2/conf/httpd.conf:537)
>          port 80 namevhost cpanel.jetbbs.com
> (/etc/apache2/conf/httpd.conf:601)
>          port 80 namevhost whm.jetbbs.com (/etc/apache2/conf/httpd.conf:
> 665)
> 45.33.78.219:443       is a NameVirtualHost
>          default server jetbbs.com (/etc/apache2/conf/httpd.conf:732)
>          port 443 namevhost jetbbs.com (/etc/apache2/conf/httpd.conf:732)
>          port 443 namevhost cpcalendars.jetbbs.com
> (/etc/apache2/conf/httpd.conf:812)
>          port 443 namevhost cpcontacts.jetbbs.com
> (/etc/apache2/conf/httpd.conf:892)
>          port 443 namevhost webdisk.jetbbs.com
> (/etc/apache2/conf/httpd.conf:972)
>          port 443 namevhost webmail.jetbbs.com
> (/etc/apache2/conf/httpd.conf:1052)
>          port 443 namevhost cpanel.jetbbs.com
> (/etc/apache2/conf/httpd.conf:1132)
>          port 443 namevhost whm.jetbbs.com (/etc/apache2/conf/httpd.conf:
> 1212)
> [2600:3c03::f03c:91ff:fee0:11b4]:80 is a NameVirtualHost
>          default server jetbbs.com (/etc/apache2/conf/httpd.conf:281)
>          port 80 namevhost jetbbs.com (/etc/apache2/conf/httpd.conf:281)
>          port 80 namevhost cpcalendars.jetbbs.com
> (/etc/apache2/conf/httpd.conf:345)
>          port 80 namevhost cpcontacts.jetbbs.com
> (/etc/apache2/conf/httpd.conf:409)
>          port 80 namevhost webdisk.jetbbs.com
> (/etc/apache2/conf/httpd.conf:473)
>          port 80 namevhost webmail.jetbbs.com
> (/etc/apache2/conf/httpd.conf:537)
>          port 80 namevhost cpanel.jetbbs.com
> (/etc/apache2/conf/httpd.conf:601)
>          port 80 namevhost whm.jetbbs.com (/etc/apache2/conf/httpd.conf:
> 665)
> [2600:3c03::f03c:91ff:fee0:11b4]:443 is a NameVirtualHost
>          default server jetbbs.com (/etc/apache2/conf/httpd.conf:732)
>          port 443 namevhost jetbbs.com (/etc/apache2/conf/httpd.conf:732)
>          port 443 namevhost cpcalendars.jetbbs.com
> (/etc/apache2/conf/httpd.conf:812)
>          port 443 namevhost cpcontacts.jetbbs.com
> (/etc/apache2/conf/httpd.conf:892)
>          port 443 namevhost webdisk.jetbbs.com
> (/etc/apache2/conf/httpd.conf:972)
>          port 443 namevhost webmail.jetbbs.com
> (/etc/apache2/conf/httpd.conf:1052)
>          port 443 namevhost cpanel.jetbbs.com
> (/etc/apache2/conf/httpd.conf:1132)
>          port 443 namevhost whm.jetbbs.com (/etc/apache2/conf/httpd.conf:
> 1212)
> *:*                    franklin.jetbbs.com (/etc/apache2/conf/httpd.conf:
> 260)
> ServerRoot: "/etc/apache2"
> Main DocumentRoot: "/etc/apache2/htdocs"
> Main ErrorLog: "/etc/apache2/logs/error_log"
> Mutex ssl-stapling: using_defaults
> Mutex proxy: using_defaults
> Mutex ssl-cache: dir="/run/apache2" mechanism=fcntl
> Mutex default: dir="/var/run/apache2/" mechanism=default
> Mutex mpm-accept: using_defaults
> Mutex rewrite-map: dir="/run/apache2" mechanism=fcntl
> Mutex ssl-stapling-refresh: using_defaults
> PidFile: "/run/apache2/httpd.pid"
> Define: DUMP_VHOSTS
> Define: DUMP_RUN_CFG
> Define: MODSEC_2.5
> Define: MODSEC_2.9
> User: name="nobody" id=99
> Group: name="nobody" id=99
>
>
> I think we figured this out.   That default server 45.33.78.219 for
> 45.33.78.219:80    is the key.   If I run curl -S
> http://www.jetbbs.com/.well-known/test.html on the server running Apache,
> I finally see the franklin.jetbbs.com-test file.   If I run curl -S
> https://www.jetbbs.com/.well-known/test.html, I see the jetbbs.com-test
> file.   If I run the -6, I see the jetbbs.com-test file.   It seems that
> default server for port 80 is only there for port 80 and not port 443.
>
> This is probably why I'm failing my security scan.   I'm not redirecting
> all traffic to port 443.   I want to be.   I used rewrite rules and as far
> as I could tell, I was.   But that default server 45.33.78.219 (IPv4) stuff
> isn't getting redirected.   I'm guessing that was added by cPanel.   I need
> to find away to redirect that now to port 443.   I can't just add an entry
> in the .htaccess file under /var/www/html   because cPanel says those files
> can get deleted at any time.
>
> Thank you so much for helping me finally understand what's going on!!!
> You were correct, it's not a bug with Apache.   This was a real big head
> scratcher for me, I really appreciate it!!!!!!
>
> On Sun, Feb 5, 2017 at 11:03 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>
>> The next thing that comes to mind is your IPv6 virtual host. None of my
>> webservers currently have IPv6 enabled, so I can't test this.
>> Try to force the connection to use IPv4 or IPv6 and see if that makes a
>> difference.
>>
>> You can try running httpd -S on the webserver to get a list of virtual
>> hosts by IP address which may also give you an idea of why a particular
>> virtual host is selected.
>>
>> - Y
>>
>> On Sun, Feb 5, 2017 at 9:10 PM, Spork Schivago <sporkschiv...@gmail.com>
>> wrote:
>>
>>> Okay.   I've been able to reproduce the results.   I removed the two
>>> ServerAlias www.jetbbs.com entries (one for port 80 and the other for
>>> port 443).   To prevent confusion, I'll tell my hostnames.
>>>
>>> Eugene: My local machine that I use to surf the internet
>>> Franklin: My VPS that runs Apache.
>>>
>>> on Franklin, I run dig www.jetbbs.com, I see:
>>>
>>> dig www.jetbbs.com
>>>
>>> ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> www.example.com
>>> ;; global options: +cmd
>>> ;; Got answer:
>>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17479
>>> ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
>>>
>>> ;; OPT PSEUDOSECTION:
>>> ; EDNS: version: 0, flags:; udp: 4096
>>> ;; QUESTION SECTION:
>>> ;www.jetbbs.com. IN A
>>>
>>> ;; ANSWER SECTION:
>>> www.jetbbs.com. 14120 IN A 45.33.78.219
>>>
>>> ;; Query time: 0 msec
>>> ;; SERVER: 96.126.106.5#53(96.126.106.5)
>>> ;; WHEN: Sun Feb 05 20:59:22 EST 2017
>>> ;; MSG SIZE  rcvd: 59
>>>
>>>
>>>
>>>
>>> On Eugene (my local machine), I run dig www.jetbbs.com, I see:
>>> dig www.jetbbs.com
>>>
>>> ; <<>> DiG 9.10.4-P5 <<>> www.jetbbs.com
>>> ;; global options: +cmd
>>> ;; Got answer:
>>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34470
>>> ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
>>>
>>> ;; OPT PSEUDOSECTION:
>>> ; EDNS: version: 0, flags:; udp: 512
>>> ;; QUESTION SECTION:
>>> ;www.jetbbs.com. IN A
>>>
>>> ;; ANSWER SECTION:
>>> www.jetbbs.com. 14399 IN A 45.33.78.219
>>>
>>> ;; Query time: 132 msec
>>> ;; SERVER: 8.8.8.8#53(8.8.8.8)
>>> ;; WHEN: Sun Feb 05 21:01:02 EST 2017
>>> ;; MSG SIZE  rcvd: 59
>>>
>>>
>>>
>>>
>>> Here's what my /etc/hosts file looks like on Franklin:
>>> # The following lines are desirable for IPv4 capable hosts
>>> 127.0.0.1 localhost localhost.localdomain localhost4
>>> localhost4.localdomain4
>>>
>>> # The following lines are desirable for IPv6 capable hosts
>>> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
>>> 2600:3c03::f03c:91ff:fee0:11b4 franklin
>>> 45.33.78.219 franklin.jetbbs.com franklin
>>>
>>>
>>>
>>> Here's what my /etc/hosts file looks like on Eugene (my local machine):
>>> # hosts         This file describes a number of hostname-to-address
>>> #               mappings for the TCP/IP subsystem.  It is mostly
>>> #               used at boot time, when no name servers are running.
>>> #               On small systems, this file can be used instead of a
>>> #               "named" name server.
>>> # Syntax:
>>> # IP-Address  Full-Qualified-Hostname  Short-Hostname
>>> 127.0.0.1 localhost
>>> # special IPv6 addresses
>>> ::1             localhost ipv6-localhost ipv6-loopback
>>> fe00::0         ipv6-localnet
>>> ff00::0         ipv6-mcastprefix
>>> ff02::1         ipv6-allnodes
>>> ff02::2         ipv6-allrouters
>>> ff02::3         ipv6-allhosts
>>> 192.168.2.5 eugene eugene
>>>
>>>
>>>
>>>
>>> I setup two test files that look like this:
>>> /home/<username>/public_html/.well-known/test.html
>>>    www.jetbbs.com and jetbbs.com test
>>>
>>> /var/www/html/.well-known/test.html
>>>    franklin.jetbbs.com test
>>>
>>>
>>> On Franklin, I run curl www.jetbbs.com/.well-known/test.html and see
>>> this:
>>> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
>>> <html><head>
>>> <title>301 Moved Permanently</title>
>>> </head><body>
>>> <h1>Moved Permanently</h1>
>>> <p>The document has moved <a href="https://www.jetbbs.com/.
>>> well-known/test.html">here</a>.</p>
>>> </body></html>
>>>
>>>
>>> So I run curl https://www.jetbbs.com/.well-known/test.html and see this:
>>> jetbbs.com and www.jetbbs.com test
>>>
>>>
>>> But on Eugene (my local machine), and everyone elses machine, when I run:
>>> curl www.jetbbs.com/.well-known/test.html, I see:
>>>   franklin.jetbbs.com test
>>>
>>> I still don't fully understand why I'm seeing different results based on
>>> whether I run the command on the server running Apache or whether I run it
>>> on another machine.   There's no www.jetbbs.com entry in the hosts
>>> file.   Is there some other place that might make it so when I'm logged
>>> into Franklin, when I type www.jetbbs.com, something converts it to the
>>> IP address of my server?   If so, then I understand what's going on, if
>>> not, I'm still confused.
>>>
>>> On Sun, Feb 5, 2017 at 8:27 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>>>
>>>> If you want to provide your whole config file, I suggest creating a
>>>> gist or pastebin post.
>>>> You should also just run dig or host on the domain name from both
>>>> machines and make sure you get the same results.
>>>>
>>>> - Y
>>>>
>>>> On Sun, Feb 5, 2017 at 8:25 PM, Spork Schivago <sporkschiv...@gmail.com
>>>> > wrote:
>>>>
>>>>> So you don't think it's a bug in Apache?   Okay.   I only have two IP
>>>>> addresses.   One is an IPv4 IP address, one is an IPv6 IP address.   When 
>>>>> I
>>>>> get some more time, I'll try some experimenting and see if I can duplicate
>>>>> the issue.   If it's okay with the mailing list, I'd like to provide a 
>>>>> copy
>>>>> of my entire Apache configuration file.   I'd really like to try and
>>>>> understand what exactly happened.   There was no ServerName
>>>>> www.example.com anywhere in the Apache config file, there was no
>>>>> ServerAlias www.example.com in the Apache config file.   I think I
>>>>> might understand what you're saying.
>>>>>
>>>>> On the remote server, when I ran curl, maybe it converted
>>>>> www.example.com to the IP address, so instead of going to
>>>>> www.example.com, I was actually going to 192.168.2.2, for example.
>>>>> I've looked at my hosts file, I have an entry for hostname.domain.com,
>>>>> but nothing for www.domain.com.
>>>>>
>>>>> On Sun, Feb 5, 2017 at 7:38 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>>>>>
>>>>>> This is a common enough setup that it is unlikely to be a bug and
>>>>>> more likely to be a configuration error.
>>>>>>
>>>>>> cPanel creates VirtualHosts using the IP address of the server. For
>>>>>> example, I have a cPanel server running behind NAT, so there are two
>>>>>> default virtual hosts:
>>>>>>
>>>>>>> <VirtualHost 192.168.118.82:80>
>>>>>>>     ServerName 192.168.118.82
>>>>>>>     DocumentRoot /var/www/html
>>>>>>>     ServerAdmin hostmas...@example.com
>>>>>>>     <IfModule suphp_module>
>>>>>>>         suPHP_UserGroup nobody nobody
>>>>>>>     </IfModule>
>>>>>>> </VirtualHost>
>>>>>>> <VirtualHost *>
>>>>>>>     ServerName ph04.example.com
>>>>>>>     DocumentRoot /var/www/html
>>>>>>>     ServerAdmin hostmas...@example.com
>>>>>>>     <IfModule suphp_module>
>>>>>>>         suPHP_UserGroup nobody nobody
>>>>>>>     </IfModule>
>>>>>>> </VirtualHost>
>>>>>>
>>>>>>
>>>>>> The actual account Virtual Host uses the IP address in the
>>>>>> VirtualHost block, so the default that would be selected would be the one
>>>>>> with the IP address:
>>>>>>
>>>>>> <VirtualHost 192.168.118.82:80>
>>>>>>>   ServerName example.net
>>>>>>>   DocumentRoot /home2/example_net/public_html
>>>>>>>   ServerAdmin webmas...@example.net
>>>>>>
>>>>>>
>>>>>> would fall back to the first Virtual Host because it is more specific.
>>>>>>
>>>>>> If there is a different IP for the website on one of your systems -
>>>>>> for example in the hosts file - that would cause it to all back to a
>>>>>> different Virtual Host than you expect because the IP doesn't match.
>>>>>>
>>>>>> - Y
>>>>>>
>>>>>>
>>>>>> On Sun, Feb 5, 2017 at 6:44 PM, Spork Schivago <
>>>>>> sporkschiv...@gmail.com> wrote:
>>>>>>
>>>>>>> Yehuda,
>>>>>>>
>>>>>>> Could you please explain what you mean in a little more detail?   I
>>>>>>> only have one server running Apache and I only have that one DNS server.
>>>>>>> I don't really see how my DNS server could be setup in such away where 
>>>>>>> it
>>>>>>> affects Apache's DocumentRoot's directive...
>>>>>>>
>>>>>>> When I was logged into the remote server running Apache, Apache was
>>>>>>> serving files from a different directory than it was when I was 
>>>>>>> accessing
>>>>>>> Apache via my local machine.   I hope that makes sense.   Looking at my
>>>>>>> Apache conf log, when I was accessing Apache from my local machine, it 
>>>>>>> was
>>>>>>> acting properly, because I didn't have a VirtualHost setup for the www
>>>>>>> host, but when I was accessing Apache from the server that was running
>>>>>>> Apache, it was serving files from the domain.com VirtualHost
>>>>>>> directory.    ServerAliases have been commented out.   To my knowledge,
>>>>>>> this should not happen.
>>>>>>>
>>>>>>> I can probably regenerate it.   I've restarted the server and
>>>>>>> everything, but I was thinking maybe this was some sort of bug and not a
>>>>>>> misconfigured server.
>>>>>>>
>>>>>>> On Sun, Feb 5, 2017 at 4:47 PM, Yehuda Katz <yeh...@ymkatz.net>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Did you check your DNS to make sure both systems are resolving to
>>>>>>>> the same IP address?
>>>>>>>>
>>>>>>>> - Y
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jan 26, 2017 at 3:31 PM, Spork Schivago <
>>>>>>>> sporkschiv...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I have a bit of a weird problem that I'd like some help tracking
>>>>>>>>> down.   I'm pretty sure it's something with Apache.   In my Apache 
>>>>>>>>> 2.4.25
>>>>>>>>> (cPanel) config file, I have the ServerAliases disabled.   There's a
>>>>>>>>> "catch-all" entry for unbound IPs, that look like this:
>>>>>>>>>
>>>>>>>>> <VirtualHost *>
>>>>>>>>>     ServerName myhostname.mydomain.com
>>>>>>>>>     DocumentRoot /var/www/html
>>>>>>>>>     ServerAdmin myrealem...@someplace.com
>>>>>>>>>
>>>>>>>>>     <IfModule suphp_module>
>>>>>>>>>         suPHP_UserGroup nobody nobody
>>>>>>>>>     </IfModule>
>>>>>>>>>
>>>>>>>>> </VirtualHost>
>>>>>>>>>
>>>>>>>>> Further down, I have a VirtualHost entry for mydomain.com, which
>>>>>>>>> has a DocumentRoot of /home/<myusername>/public_html
>>>>>>>>>
>>>>>>>>> I setup a test file, /home/<myusername>/public_html
>>>>>>>>> /.well-known/acme-challenge/test that says www.mydomain.com-test.
>>>>>>>>>
>>>>>>>>> Then I setup another test file, 
>>>>>>>>> /var/www/html/.well-known/acme-challenge/test
>>>>>>>>> that says myhostname.mydomain.com-test
>>>>>>>>>
>>>>>>>>> I have .htaccess files in /home/<myusername>/public_html that
>>>>>>>>> redirect all traffic to secure ports.   I have cPanel installed and 
>>>>>>>>> have
>>>>>>>>> manually setup subdomains for the various cPanel stuff.
>>>>>>>>>
>>>>>>>>> Anyway, when I run the following command on the remote server:
>>>>>>>>>    curl http://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>>>
>>>>>>>>> I see the 301 redirect.   When I run:
>>>>>>>>>    curl https://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>>> I see the:
>>>>>>>>>    www.mydomain.com-test
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> However, when I run those commands on my local Linux box instead
>>>>>>>>> of the remote server that's running Apache, I see:
>>>>>>>>>   curl http://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>>>   myhostname.mydomain-test
>>>>>>>>>
>>>>>>>>>   curl https://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>>>   www.mydomain.com-test
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> It's not just curl, lynx, the command line web browser, does the
>>>>>>>>> same thing.   On the remote computer that's running Apache, for some
>>>>>>>>> reason, I'm seeing different results than I am when I run the 
>>>>>>>>> commands on
>>>>>>>>> my local Linux box.
>>>>>>>>>
>>>>>>>>> Any idea what's going on?
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> Sincerely,
>>>>>>>>> Ken Swarthout
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to