配置X.509证书身份验证¶
证书身份验证涉及使用公钥/私钥来标识自己。与基本用户名和密码方案相比,这是一个更安全的替代方案。
X.509 是一个定义良好的公钥证书格式标准。本教程将介绍设置X.509证书身份验证的过程。
先决条件¶
本教程假设:
支持使用客户端证书进行身份验证的Web浏览器,也称为“双向SSL”。本教程使用 火狐 .
支持SSL的servlet容器。本教程使用 雄猫 .
geoserver部署在Tomcat中。
配置用户/组服务¶
必须在GeoServer中配置通过X.509证书认证的用户。为此,将添加新的用户/组服务。
以
admin
用户。单击
Users, Groups, and Roles
链接位于Security
导航边栏的部分。向下滚动到
User Group Services
面板并单击Add new
链接。创建名为的新用户/组服务 cert-ugs 填写设置表如下:
集合 Password encryption 到 Empty 因为用户不会通过密码进行身份验证。
集合 Password policy 到 default .
点击 Save .
回到
Users, Groups, and Roles
第页,单击 cert-ugs 链接。选择 Users 选项卡并单击 Add new user 链接。
添加名为的新用户 rod 和分配
ADMIN
角色。点击 Save .
单击 Authentication 链接位于 Security 导航边栏的部分。
向下滚动到 Authentication Filters 面板并单击 Add new 链接。
单击 X.509 链接并填写表格如下:
集合 Name 到“cert”
集合 Role source 到 User group service 并将关联的下拉列表设置为 cert-ugs
点击 Save .
回到“身份验证”页,向下滚动到 Filter Chains 面板。
点击 web 在 Name 列。
选择 cert 过滤并将其放置在 rememberme 过滤器。
点击 Close .
您将返回上一页。点击 Save .
警告
最后一个更改需要 Close 然后 Save 单击。您可能希望返回 web 对话框以验证是否进行了更改。
下载示例证书文件¶
与其演示如何创建或获取有效证书(这超出了本教程的范围),不如将示例文件作为Spring安全性的一部分提供。 sample applications 将被使用。
下载并解包 sample certificate files
.此存档包含以下文件:
ca.pem
是由“Spring Security Test CA”证书颁发机构颁发的证书颁发机构(CA)证书。此文件用于对服务器和客户端证书进行签名。server.jks
是Java密钥存储库,包含由Tomcat使用的服务器证书和私钥,并在SSL连接的设置期间呈现给用户。rod.p12
包含用于通过Web浏览器执行客户端身份验证的客户端证书/密钥组合。
为SSL配置Tomcat¶
复制
server.jks
文件到conf
Tomcat安装根目录下的目录。编辑Tomcat
conf/server.xml
并添加一个SSL连接器:<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/server.jks" keystoreType="JKS" keystorePass="password" truststoreFile="${catalina.home}/conf/server.jks" truststoreType="JKS" truststorePass="password" />
这将在端口8443上启用SSL。
默认情况下,Tomcat启用了APR。要禁用它以便上面的配置可以工作,请删除或注释掉server.xml配置文件中的以下行
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
重新启动Tomcat。
安装客户端证书¶
在Firefox中,选择 Preferences (或) )导航到 Advanced 面板。
选择 Encryption 标签(或 Certificates 选项卡,具体取决于您的版本),然后单击 View Certificates 按钮。
上 Your Certificates 面板单击 Import 按钮并选择
rod.p12
文件。提示时输入密码 password .
点击 OK 关闭火狐首选项。
测试证书登录¶
使用https:https://localhost:8443/geoserver/web导航到端口“8443”上的geoserver admin。
系统将提示您输入证书。选择 rod 身份证明。
当出现有关自签名服务器证书的警告时,请单击 Add Exception 若要添加安全例外,请执行以下操作。
结果是用户 rod
现在登录到geoserver管理界面。
备注
从版本31开始,火狐实现了一种新的证书使用机制,这将导致 Issuer certificate is invalid error (sec_error_ca_cert_invalid) 尝试使用自签名存储库(如建议的存储库)时出错。为了避免这种情况,您可以通过浏览 关于:配置 设置 security.use_mozillapkix_verification 参数到 假 .