首页 > 解决方案 > 使用 htpasswd 没有用户名和密码的 Nginx 基本身份验证

问题描述

我想知道如何在 nginx 上实现基本身份验证,但它应该接受空白用户名和密码。

我知道如何接受空白密码,只需在以下命令后按两次 Enter:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

但也想将用户名设置为空白。

我试图做的

userX@serverY:/etc/nginx/sites-enabled$ cat /etc/nginx/.htpasswd
'':$apr1$7.K74dRaqewqsdeeQ0StVIJ1
$apr1$7.K74dRaqewqsdeeQ0StVIJ1
:$apr1$7.K74dRaqewqsdeeQ0StVIJ1

发现

sudo htpasswd -c /etc/nginx/.htpasswd sammy  <-- WORKS
sudo htpasswd -c /etc/nginx/.htpasswd  <-- FAILS
sudo sh -c "echo -n 'sammy:' >> /etc/nginx/.htpasswd" <-- WORKS
sudo sh -c "echo -n  >> /etc/nginx/.htpasswd" <-- adds NOTHING to .htpasswd
sudo sh -c "echo -n ':' >> /etc/nginx/.htpasswd" <-- add " to .htpasswd, but after adding passwrod DOES NOT WORK

背后的原因
我们使用 Selenoid webdriver 并且由于知道问题 #806,如果没有身份验证。在服务器端 Java 不发送凭据。这就是为什么我们需要强制执行基本身份验证,但是我们并不需要验证用户名和密码。

将尝试
可能的解决方法,我将尝试使用用户名user和无密码启用和配置基本身份验证,并在测试中使用以下 URL,它将让您知道这是否有效。

user@myserver.com

这甚至可能吗?

标签: nginx.htpasswd

解决方案


推荐阅读