libre_ops.ca_keys

证书授权机构密钥

这是一个用于生成私有CA密钥和签名证书的Ansible角色。这些密钥和证书可以用于保护服务器/客户端应用程序,在这里需要加密传输中的数据和节点之间的身份验证。

当正确配置时,由私有CA签名的密钥可以防止中间人攻击(MITM),并可以用于双向身份验证。一个例子可能是在Kafka或Elastic Stack集群中保护节点之间的连接。

该角色遵循以下大致步骤:

  • 生成CA(证书授权机构)密钥对
  • 为指定节点生成密钥和CSR(证书签名请求)
  • 使用CA签署CSR,创建签名证书(CRT)
  • 可选地将必要的密钥打包到Java密钥库/信任库二进制文件中

默认值

查看所有默认值 这里,并根据需要覆盖它们。

使用方法

推荐的用法:在本地剧本中运行此角色(见下文),然后将生成的文件移到安全的地方。不要让密钥随意放置。此代码按原样提供,如何使用和存储生成的密钥是您的责任!

如果存在,您可以使用此角色从现有的CA证书创建新的密钥和CRT。

创建后,将所需的文件移到您正在使用的项目中。您可以使用 Ansible Vault 加密文件(包括jks二进制文件),并在上传时,如果提供了vault密码,Ansible模块如 copy 将在上传过程中解密它们。

检查密钥

您可以(并且应该)使用各种 openssl 命令检查密钥。以下是一些示例:

openssl x509 -in generated_keys/ca.crt -text -noout
openssl rsa -in generated_keys/<key-name>.key -check
openssl x509 -in generated_keys/<key-name>.crt -text -noout

Python限制

由于Ansible的一个错误(修复已合并到 devel 分支),在运行生成Java密钥库的任务时,您必须使用Python 2.7。有关详细信息,请查看 此问题

示例剧本

- name: 生成密钥
  hosts: 127.0.0.1
  connection: local
  
  vars:
    ansible_python_interpreter: '/usr/bin/python2.7'

  roles:
    - role: libre_ops.ca_keys
      vars:
        cert_organisation: 示例公司
        cert_unit: 密钥部门
        cert_country: FR
        cert_state: 巴黎
        cert_location: 巴黎
        
        create_keys:
          - filename: 服务器
            subject:
              - "/CN=app.client.org"
              - "/O={{ cert_organisation }}"
              - "/OU={{ cert_unit }}"
              - "/C={{ cert_country }}"
              - "/ST={{ cert_state }}"
              - "/L={{ cert_location }}"
              
          - filename: 客户端
            subject:
              - "/CN=app.server.org"
              - "/O={{ cert_organisation }}"
              - "/OU={{ cert_unit }}"
              - "/C={{ cert_country }}"
              - "/ST={{ cert_state }}"
              - "/L={{ cert_location }}"    
关于项目

Generate private CA keys and signed certificates

安装
ansible-galaxy install libre_ops.ca_keys
许可证
gpl-3.0
下载
142
拥有者
Ansible roles for syadmin proles.