主机访问Ubuntu Apache状态页需密码但凭据不被接受问题求助
解决Apache状态页的认证与连接问题
兄弟,我来帮你捋清楚这个问题哈!你遇到的两个问题——浏览器提示“连接非私密”和认证凭据不对,咱们分开解决:
一、先搞定用户名密码的问题
你看到的登录弹窗,是Apache的HTTP基础认证,这个凭据和系统的root密码、本地用户密码完全没关系!是你在配置mod_status(状态页)的时候,专门用htpasswd命令创建的专属认证账号,不是系统里的账号哈。
找回或重新创建认证凭据:
- 先登录你的Ubuntu Server虚拟机,打开终端
- 先找找之前创建的认证文件,通常会放在Apache的配置目录里,跑这个命令看看:
如果能看到类似sudo cat /etc/apache2/.htpasswdadmin:$apr1$xxxxxx$xxxxxx的内容,那前面的admin就是用户名,密码就是你当时创建这个账号时设的。 - 要是找不到文件或者彻底忘了密码,直接重新建一个就行:
把“你想要的用户名”换成你自己想设的名字,然后按提示输入两次新密码就行。sudo htpasswd -c /etc/apache2/.htpasswd 你想要的用户名 - 最后要确认Apache的状态页配置里指向了这个文件,打开配置文件:
找到sudo nano /etc/apache2/mods-enabled/status.conf<Location /server-status>这段,确保里面的AuthUserFile路径和你刚才创建的一致,比如:
改完按<Location /server-status> SetHandler server-status # 下面是认证相关的配置,要确保路径正确 AuthType Basic AuthName "Apache Status" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Location>Ctrl+O保存,回车确认,再按Ctrl+X退出,然后重启Apache生效:sudo systemctl restart apache2
二、解决“连接并非私密连接”的提示
你明明用的是http://开头的地址,浏览器却跳出来私密连接警告,大概率是浏览器自动把HTTP跳转成HTTPS了——要么是你之前配置过HTTPS规则,要么是浏览器缓存了旧的跳转记录。试试这几个办法:
- 打开浏览器的无痕/隐私窗口,重新输入完整的
http://my_domain_name:8080/server-status访问 - 手动在地址栏敲死
http://开头,别让浏览器自动补全成HTTPS - 检查Apache的虚拟主机配置或者
.htaccess文件里有没有强制HTTPS的重写规则,要是有的话,暂时注释掉再试试
内容的提问来源于stack exchange,提问作者RICHARD TEUNEN
相关产品推荐
相关产品推荐

