특히 기본 인증과 관련하여 구축 중인 내부 네트워크 유틸리티 서버에 문제가 있습니다.
이제 다음 구성으로 작동하게 되었습니다.
root@P-UIDMON-02:/# /usr/local/scripts/LinuxVersion.sh
### Linux Standard Base Information
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.04
Release: 23.04
Codename: lunar
### Kernel Release
6.2.0-1015-azure
### Version of Apache2
Server version: Apache/2.4.55 (Ubuntu)
Server built: 2023-10-26T13:37:01
root@P-UIDMON-02:/# /usr/local/scripts/ApacheConfig.sh
### /etc/apache2/apache2.conf Config File
ServerName p-uidmon-02.acas.example.org
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
### p-uidmon-02.conf Site Specific Config File
<Directory /var/www>
SSLRequireSSL
</Directory>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Redirect "/" "https://p-uidmon-02.acas.example.org/"
ServerName acas.example.org
ServerAlias p-uidmon-02.acas.example.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
DirectoryIndex index.html
AllowOverride All
SSLRequireSSL
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/auth/.htpasswd
Require valid-user
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
ServerName acas.example.org
ServerAlias p-uidmon-02.acas.example.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
### /var/www/html/.htaccess File
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/auth/.htpasswd
Require valid-user
내 문제(이해할 수 없음)는 파일을 .htaccess
특정 디렉터리에 넣지 않고도 가상 호스트에서 기본 인증 세부 정보를 사용할 수 있기를 원하지만 이를 작동시킬 수 있는 유일한 방법은 .htaccess
디렉토리의 파일. 가상 호스트 선언을 무시하는 것과 같습니다 <Directory>XYZ</Directory>
. 파일을 삭제해도 .htaccess
문제가 발생하지 않습니다. 파일이 있으면 문제가 발생합니다.
그것이 작동하는 동안, 그것을 가져가면 왜 작동하지 않는지 이해하려고 노력하는 것은 나를 미치게 만듭니다 .htaccess
.
내가 여기서 뭘 잘못하고 있는지 설명해 주실 수 있나요?
답변1
제가 보기에는 세 가지 주요 문제가 있는 것 같습니다.
htaccess
관리 포트 443 대신 가상 호스트 관리 포트 80에 구성 명령문을 넣었습니다 .- SSL 포트 443 호스트 대신 SSL이 아닌 포트 80 호스트에 SSL 구성 명령문을 넣었습니다.
- 포트 80의 가상 호스트는 포트 443의 가상 호스트로 즉시 리디렉션되므로 모든 구성 명령문은 (대부분) 무시됩니다.