• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. apache2 - Apache виртуални хостове https работи, но http отнема до ...

apache2 - Apache виртуални хостове https работи, но http отнема до ...

Rsdaa 04/11/2021 1152

Попитан преди 3 години, 11 месеца

Прегледан 3k пъти

Използвам amazon linux с apache (Apache/2.4.25 (Amazon)). Имам няколко домейна и няколко поддомейна. Използвам letsencrypt/cerbot за ssl сертификати. Това работи. Имам достъп до https без проблем. Въпреки това не мога да осъществя достъп до нито един от моите http виртуални хостове, които не са по подразбиране. Всички те пренасочват към виртуалния хост по подразбиране. Намерих само няколко други публикации като тази без резолюция и това изглежда трудно за търсене. Letsencrypt се оплака, че имам нужда от отделни файлове за виртуални хостове, така че това направих за http и https. В крайна сметка преместих всички http в httpd.conf и това също не работи. Имам записи "A" и за моите домейни и поддомейни. Какво ми липсва?

###Begin httpd.conf###ServerRoot "/etc/httpd"Listen 80Include conf.modules.d/*.confUser nona_yo_bizGroup nona_yo_bizServerAdmin support@example.comAllowOverride noneRequire all deniedAllowOverride All# Allow open access:Require all grantedOptions FollowSymLinksAllowO verride AllRequire all granted# Заредете конфигурационните файлове в директорията "/etc/httpd/conf.d", ако има такава.# Това е мястото, където се съхраняват моите ssl файлове. AllDirectoryIndex index.html index.phpRequire all grantedServerAdmin support@example.comDocumentRoot "/var/www/html/basesite"ServerName basesite.comServerAdmin support@example.comDocumentRoot "/var/www/html/sub1example"ServerName sub1.example.comServerAdmin support @example.comDocumentRoot "/var/www/html/sub2example"ServerName sub2.example.comServerAdmin support@example.comDocumentRoot "/var/www/html/example"ServerName example.com###End httpd.conf#### ##BEGIN ssl.conf###Listen 443 https#Some other stuffDocumentRoot "/var/www/html/basesite"ServerName basesite.com:443ErrorLog logs/ssl_error_logTransferLog logs/ssl_access_logLogLevel warnSSLEngine onSSLProtocol all -SSLv3SSLProxyProtocol all -SSL v3SSLHonorCipherOrder on#Some other stuffCustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"ServerAdmin support@example.comSSLCertificateFile /etc/letsencrypt/live/basesite.com/fullchain.pemSSLCertificateKeyFile /etc /letsencrypt/live/basesite.com/privkey.pem###END ssl.conf###Отделен conf файл за vhost###ServerAdmin support@example.comDocumentRoot "/var/www/html/sub1example"ServerName sub1.example .com:443SSLCertificateFile /etc/letsencrypt/live/basesite.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/basesite.com/privkey.pem###Отделен conf файл за vhost###ServerAdmin support@example.comDocumentRoot " /var/www/html/sub2example"Име на сървъра sub2.example.com:443SSLCertificateFile /etc/letsencrypt/live/basesite.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/basesite.com/privkey.pem###Отделна conf файл за vhost###ServerAdmin support@example.comDocumentRoot "/var/www/html/example"ServerName example.com:443SSLCertificateFile /etc/letsencrypt/live/basesite.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/basesite .com/privkey.pem

Редактиране на apachectl -S изход

sudo apachectl -SVirtualHost конфигурация:*:443 е сървър по подразбиране NameVirtualHost basesite.com (/etc/httpd/conf.d/ssl.conf:57) порт 443 namevhost basesite.com (/etc/httpd/conf.d/ssl. conf:57) порт 443 namevhost sub1.example.com (/etc/httpd/conf.d/ssl_sub1_exa.conf:1) порт 443 namevhost example.com (/etc/httpd/conf.d/ssl_exa.conf:1) порт 443 namevhost sub2.example.com (/etc/httpd/conf.d/ssl_sub2_exa.conf:1)*:80 е сървър по подразбиране NameVirtualHost basesite.com (/etc/httpd/conf/httpd.conf:392) порт 80 namevhost basesite.com (/etc/httpd/conf/httpd.conf:392) порт 80 namevhost sub1.example.com (/etc/httpd/conf/httpd.conf:400) псевдоним sub1.example.com:80 порт 80 namevhost example.com (/etc/httpd/conf/httpd.conf:407)ServerRoot: "/etc/httpd"Main DocumentRoot: "/var/www/html/"Main ErrorLog: "/etc/httpd/logs/ error_log"Mutex по подразбиране: dir="/var/run/httpd/" механизъм=defaultMutex mpm-accept: using_defaultsMutex cache-socache: using_defaultsMutex authdigest-opaque: using_defaultsMutex watchdog-callback: using_defaultsMutex proxy-balancer-shm: using_defaultsMutex rewrite-map : using_defaultsMutex ssl-stapling-refresh: using_defaultsMutex authdigest-client: using_defaultsMutex ssl-stapling: using_defaultsMutex прокси: using_defaultsMutex authn-socache: using_defaultsMutex ssl-cache: using_defaultsPidFile: "/var/run/httpd/http d.pid"Дефиниране: DUMP_VHOSTSDефиниране: DUMP_RUN_CFGUser: name="nona_yo_biz" id=404Група: name="nona_yo_biz" id=505

попита на 12 октомври '17 в 5:34

vdidxhovdidxho

12511 сребърна значка1111 бронзови значки

Така че разреших проблема и за съжаление беше комбинация от опитване на няколко различни неща. Така че нямам лесен отговор, но мога да дам някои от нещата, които ми помогнаха по пътя.

Благодарение на Vasya Zhuryk използвах sudo apachectl -S, за да определя къде/как всъщност се зареждат моите виртуални хостове. В настройката по подразбиране на Amazon Linux apache вашите ssl файлове се зареждат динамично от conf.d, когато завършват на ".conf." Те се зареждат от основния файл httpd.conf чрез IncludeOptional conf.d/*.conf. Както разбрах преди, не оставяйте резервните си копия в conf.d с ".conf" или в крайна сметка ще имате проблеми. Това обаче не се случва в папката conf. Така че те трябва да бъдат включени с Include /path to file/file.conf. Открих, че при частно сърфиране в chrome (ctrl+shift+N), сайтовете без ssl работят добре. Така че изчистването на данните за формуляр за автоматично попълване (и евентуално кеширани изображения и файлове) от „началото на времето“ изчисти лошото пренасочване на домейна в chrome. Беше много подвеждащо, защото докато въвеждах адреса, правилното име на домейн се показваше, но винаги пренасочваше към грешния. Това вероятно се дължи на предишен лошо конфигуриран виртуален хост.

Отново имаше много неща, направени и изпробвани по пътя, но по-горе бяха някои ключови моменти, които може да помогнат на други.

отговори на 17 октомври '17 в 15:43

vdidxhovdidxho

12511 сребърна значка1111 бронзови значки

Не виждам запис за NameVirtualHost *:80, за виртуален хост, базиран на име, това е запис, от който ще се нуждаете във вашия конфигурационен файл. Просто опитайте.

отговори на 12 октомври '17 в 6:08

ШантануШантану

18991414 сребърни значки1515 бронзови значки

1

Имам 2 идеи: (вижте виртуални хостове)

1. httpd -S

И

2. SSLCertificateKeyFile трябва да има разширение *.key

Нямате директива за виртуален хост на правила (index.php, разрешаване на .htaccess и други), можете да опитате това:

ServerAdmin support@example.comDocumentRoot "/var/www/html/basesite"ServerName basesite.comOptions Indexes FollowSymLinksAllowOverride AllDirectoryIndex index.php index.htmlRequire all granted

отговори на 12 октомври '17 в 20:34

Васил Журик Васил Журик

1,08777 сребърни значки2121 бронзови значки

2

Трябва да добавите "NS" запис към административния панел на домейна.

отговори на 17 октомври '17 в 15:17

Васил Журик Васил Журик

1,08777 сребърни значки2121 бронзови значки

Stack Overflow работи най-добре с активиран JavaScript

Вашата поверителност

Като щракнете върху „Приемам всички бисквитки“, вие се съгласявате, че Stack Exchange може да съхранява бисквитки на вашето устройство и да разкрива информация в съответствие с нашата Политика за бисквитки.


PREV: Коригиране на DHCP не е активиран за Wi-Fi в Windows - блог на Auslogics

NEXT: Какво е клиент-сървър? Определение и ЧЗВ | OmniSci

Popular Articles

Hot Articles
Back to Top