首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >配置客户端身份验证后无法启动Apache服务器

配置客户端身份验证后无法启动Apache服务器
EN

Server Fault用户
提问于 2019-05-01 12:24:09
回答 1查看 5.7K关注 0票数 2

CentOS 7 \x{e76f} Apache 2.4.6

我已经构建了一个私有证书颁发机构(CA)和两个证书(一个用于服务器,一个用于客户端)。

然后,我将Apache配置为使用证书X.509来响应HTTPS连接,一切顺利(我在浏览器中看到了它)。

然后,当我配置客户端身份验证时,重新启动服务器并得到以下错误:

httpd.service的作业失败,因为控制进程存在错误代码。有关详细信息,请参阅"systemctl status httpd.service“和"journalctl -xe”。

现在它看起来“语法确定”,但我仍然无法启动服务器,得到以下错误,使用命令:

。systemctl状态httpd.service

代码语言:javascript
运行
复制
[root@localhost ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2019-05-01 18:35:40 WEST; 2min 3s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 12292 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 12288 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 12288 (code=exited, status=1/FAILURE)

May 01 18:35:37 src_ca systemd[1]: Starting The Apache HTTP Server...
May 01 18:35:40 src_ca systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
May 01 18:35:40 src_ca kill[12292]: kill: cannot find process ""
May 01 18:35:40 src_ca systemd[1]: httpd.service: control process exited, code=exited status=1
May 01 18:35:40 src_ca systemd[1]: Failed to start The Apache HTTP Server.
May 01 18:35:40 src_ca systemd[1]: Unit httpd.service entered failed state.
May 01 18:35:40 src_ca systemd[1]: httpd.service failed.

.“-xe日志”

代码语言:javascript
运行
复制
May 01 18:39:16 src_ca polkitd[2607]: Registered Authentication Agent for unix-process:12474:9099194 (system bus name :1.157 [/usr/bin/pkttyagent --notify-fd 5 --fallba
May 01 18:39:16 src_ca systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
May 01 18:39:18 src_ca systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
May 01 18:39:18 src_ca kill[12483]: kill: cannot find process ""
May 01 18:39:18 src_ca systemd[1]: httpd.service: control process exited, code=exited status=1
May 01 18:39:18 src_ca systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has failed.
--
-- The result is failed.
May 01 18:39:18 src_ca systemd[1]: Unit httpd.service entered failed state.
May 01 18:39:18 src_ca systemd[1]: httpd.service failed.
May 01 18:39:18 src_ca polkitd[2607]: Unregistered Authentication Agent for unix-process:12474:9099194 (system bus name :1.157, object path /org/freedesktop/PolicyKit1/

我将保留用于配置客户端身份验证的进程。我会在问题的底部留下一些有用的文件。

Procedure配置客户端身份验证

  1. 首先在文件“/etc/httpd/conf.d/ssl.conf”中定位选项"SSLCACertificateFile“:vi +/SSLCACertificateFile /etc/httpd/conf.d/ssl.conf
  2. 更新到:/etc/pki/CA/certs/ca.crt的路径

这是CA证书的位置。

注意:客户端的证书位于/etc/pki/CA/certs文件夹中。我不确定这在配置客户端身份验证时是否会导致任何问题。(Update:编辑1)

  1. 删除指令"SSLVerifyClient require“上的"#”。
  2. 保存修改后的文件并使用:wq退出文件,然后重新启动服务器:systemctl restart httpd

调试的<#>Useful文件

。“etc/Host”(添加IP +主机)

。"/etc/hostname“(可以用hostnamectl set-hostname new-hostname完成)

。"etc/httpd/conf/httpd.conf“

。"/etc/httpd/conf.d/ssl.conf“

。"/var/log/httpd/error_log“

代码语言:javascript
运行
复制
[Wed May 01 18:18:13.050768 2019] [core:notice] [pid 11416] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Wed May 01 18:18:13.053282 2019] [suexec:notice] [pid 11416] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[We May 01 18:18:16.238779 2019] [ssl:emerg] [pid 11416] AH02311: Fatal error initialising mod_ssl, exiting. See /etc/httpd/logs/ssl_error_log for more information

。“/var/log/httpd/ssl_error_log”

代码语言:javascript
运行
复制
[Wed May 01 18:18:16.238749 2019] [ssl:emerg] [pid 11416] AH01895: Unable to configure verify locations for client authentication
EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-05-01 22:51:18

我使用了另一个上下文上构建的证书,重新启动了Apache,错误没有显示出来。

这意味着错误必须与证书一起。

在此情况下,我重新仔细观察了我用于构建CA的过程(我将在这个答案的底部添加这个过程),并发现了错误。

我使用的是“临时”证书,而不是cacert.pem

创建CA的Procedure:

  1. openssl genrsa -des3 -out /etc/pki/CA/private/cakey.pem
  2. openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/ca.crt
  3. openssl x509 -req -days 100 -in ca.crt -out cacert.pem -signkey private/cakey.pem
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/965414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档