1Panel icon indicating copy to clipboard operation
1Panel copied to clipboard

需求文档:支持双向SSL认证和证书管理

Open ez-docker opened this issue 2 years ago • 4 comments

  • 需求文档:支持双向SSL认证和证书管理

功能描述

本需求要求实现以下几个功能:

  1. 支持双向SSL认证;
  2. 提供证书管理,可以方便生成和管理客户端证书,每个客户端证书一个对应的个人或设备;
  3. 提供客户端证书的自定义期限,可以在过期前轻松续签;
  4. 用于web控制台的自定义域名双向绑定,通过生成不同的证书派发给不同的操作人员来实现人员的绑定,提高系统安全性。

系统配置与实现

  1. 配置Nginx开启SSL双向认证,并设置SSL证书、SSL协议和SSL密码等参数;
  2. 生成和管理客户端证书;
  3. 定期轮换证书,提高系统安全性。

支持双向SSL认证

在Nginx配置中添加以下指令,启用SSL双向认证:

listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/client.crt;
ssl_verify_client on;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;

客户端证书管理

  1. 使用OpenSSL命令,生成客户端证书:您可以按需自定义期限和客户端名称,每个客户端证书对应一个具体的个人或者设备(微服务)。

    openssl req -newkey rsa:2048 -nodes -keyout /path/to/client.key -out /path/to/client.csr
    
  2. 使用客户端证书请求文件(.csr文件),生成自签名客户端证书(.pem文件):

    openssl x509 -req -in /path/to/client.csr -CA /path/to/server.crt -CAkey /path/to/server.key -CAcreateserial -out /path/to/client.crt -days 365
    
  3. 使用以上命令可以生成客户端证书,管理证书应该考虑以下因素:

  • 合理的目录结构,方便管理证书;
  • 客户端证书的有效期限;
  • 客户端证书的名称,便于辨认。

客户端证书的自定义期限

  1. 客户端证书的生成和有效期限可以通过配置文件来实现自定义期限。配置文件应该包括以下内容:
  • Client Name (客户端名称)
  • Client ID (客户端编号)
  • Client Certificate Issue and Expiry Date (客户端证书的颁发和过期日期)
  1. 您可以在配置文件中定义默认的证书期限,并在生成证书时,可以覆盖默认期限。

  2. 您可以使用系统定时任务程序,在证书过期前自动轮换或更新证书,以保证证书的有效性。

用于web控制台的自定义域名双向绑定

  1. 在web控制台,为每个操作人员自动生成证书。每个客户端证书都应该具有相应的选项,如期限和颁发人名称。

  2. 系统管理员可以通过web控制台配置自定义域名双向绑定,并管理客户端证书,在证书到期前定期更新或续签。

  3. 建议为每个操作人员和设备都分配唯一的客户端证书,并通过生成不同的证书派发给不同的操作人员来实现人员的绑定。

参考资料

  1. Nginx官方文档:https://nginx.org/en/docs/
  2. OpenSSL官方文档:https://www.openssl.org/docs/

ez-docker avatar Mar 24 '23 10:03 ez-docker

感谢您的反馈,后续版本我们会支持该需求。

wanghe-fit2cloud avatar Mar 24 '23 15:03 wanghe-fit2cloud

需求非常好,尤其是面板登录,尤其需要双向证书。最好有一键式的界面

BlueNoob avatar Dec 20 '23 06:12 BlueNoob

请问这个问题有进展吗?

maninhill avatar Dec 19 '24 13:12 maninhill