Snipe-IT在cPanel/WHM下Auto SSL失效及.well-known访问问题求助
我在cPanel与WHM环境中安装Snipe-IT后,通过include文件为子域名创建了自定义VirtualHost,分别生成了HTTP和SSL两个配置文件,内容如下:
<Directory /home/sitename/public_html/foldername> Allow From All AllowOverride All Options -Indexes </Directory> DocumentRoot /home/sitename/public_html/foldername/public ServerName foldername
目前Snipe-IT可正常运行,但Auto SSL功能无法生效,且.well-known文件夹无法访问,推测问题出在当前VirtualHost配置文件,尝试修改后仍未解决,特此求助。
Auto SSL返回错误信息
DNS DCV: No local authority: “sitename.com”; HTTP DCV: 系统请求临时文件“http://sitename.com/.well-known/pki-validation/C5D6E8C52B231314C3DB7ACDD.txt”时,服务器返回404(未找到)错误,可能存在DNS或Web服务器配置问题。
注:主域名Auto SSL可正常使用,子域名与主域名IP一致。
Snipe-IT子域名目录下的.htaccess文件内容
<IfModule mod_negotiation.c> Options -MultiViews </IfModule> # 确保子目录下的.env文件无法被访问 <FilesMatch "\.env$"> # Apache 2.2配置 <IfModule !authz_core_module> Deny from all </IfModule> # Apache 2.4+配置 <IfModule authz_core_module> Require all denied </IfModule> </FilesMatch> </IfModule> # BEGIN cPanel生成的PHP ini指令,请勿编辑 # 手动编辑此文件可能导致意外行为。 # 如需修改,请使用cPanel多PHP INI编辑器(主页 >> 软件 >> 多PHP INI编辑器) <IfModule php7_module> php_flag display_errors Off php_value max_execution_time 30 php_value max_input_time 60 php_value max_input_vars 1000 php_value memory_limit 128M php_value post_max_size 50M php_value session.gc_maxlifetime 1440 php_value session.save_path "/var/cpanel/php/sessions/ea-php74" php_value upload_max_filesize 40M php_flag zlib.output_compression Off </IfModule> <IfModule lsapi_module> php_flag display_errors Off php_value max_execution_time 30 php_value max_input_time 60 php_value max_input_vars 1000 php_value memory_limit 128M php_value post_max_size 50M php_value session.gc_maxlifetime 1440 php_value session.save_path "/var/cpanel/php/sessions/ea-php74" php_value upload_max_filesize 40M php_flag zlib.output_compression Off </IfModule> # END cPanel生成的PHP ini指令,请勿编辑
解决方案建议
修改VirtualHost配置,添加.well-known路径映射
当前VirtualHost的DocumentRoot指向Snipe-IT的public目录,但Auto SSL的验证文件默认存放在主域名根目录的.well-known文件夹(即/home/sitename/public_html/.well-known)。需要在HTTP和SSL的VirtualHost配置中添加别名规则,让子域名能访问到这个路径:Alias /.well-known /home/sitename/public_html/.well-known <Directory /home/sitename/public_html/.well-known> AllowOverride None Require all granted </Directory>将这段代码放在
DocumentRoot配置项之前。修复.htaccess语法错误
你的.htaccess文件存在多余的闭合标签:开头是<IfModule mod_negotiation.c>,但结尾多了一个</IfModule>,会导致Apache解析异常。删除最后那个多余的</IfModule>即可。重启Apache服务
修改配置后,通过WHM的「重启Apache」功能或执行SSH命令/usr/local/cpanel/scripts/restartsrv_httpd重启服务,确保配置生效。验证路径可用性
在/home/sitename/public_html/.well-known/pki-validation/目录下手动创建测试文件(如test.txt),访问http://你的子域名/.well-known/pki-validation/test.txt,确认能正常打开后,再重新触发Auto SSL申请。
内容的提问来源于stack exchange,提问作者Arthur

