我是配置 OpenSSL 的完全新手;我已经通过 Windows 上的 git 在我的 Windows 计算机上找到了 OpenSSL 可执行文件。
虽然我不知道从哪里开始为将要访问并需要登录名和密码的站点创建 SSL 证书,但只要客户端拥有该站点的 SSL 证书,SSL 就会为客户端发挥作用,向客户端发送登录名和密码。否则,如果客户端没有证书,站点将显示用户输入其登录名和密码。
我搜索了如何设置和配置 OpenSSL,但大多数网站只告诉如何安装它,而我不需要这些信息。我已准备好运行执行此问题中要求的操作所需的命令。
我不建议使用
openssl
CLI 工具来创建证书。请使用 Easy-RSA 或 XCA 或其他已有良好证书模板的工具。(Windows Server 具有 AD 集成证书颁发机构功能。)您可以使用openssl ca
它(那里有教程),但您几乎是从头开始构建证书,考虑到存在替代方案,这对于第一天来说有点难以解释。一般步骤如下:
请注意,SSL“客户端”证书使用的模板与“服务器”证书略有不同。当然,有很多重叠之处,许多公共“服务器”证书实际上是从双重客户端/服务器模板颁发的,但您仍应将它们视为截然不同。客户端证书实际上可以更简单一些 - 例如,通常您不需要 subjectAltName。
这将由您的网络服务器处理。搜索“客户端证书”或有时搜索“mTLS”。
SSLVerifyClient
和SSLCACertificateFile
ssl_verify_client
和ssl_client_certificate
请注意,证书不会自动填写任何表格。相反,Web 应用程序本身需要在 Web 服务器(例如
$_SERVER["SSL_something"]
PHP)的标头中查找证书详细信息,并根据证书的 CN 自动让用户登录。