云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云数据库_怎么备份数据库_好用

小七 141 0

十、 509使用保险库管理证书

在这篇博文中,我们将研究Vault中的实用公钥证书管理,它使用动态机密方法。HashiCorp Vault提供机密管理和敏感数据保护。它提供了一个中心位置来保护、存储和控制对令牌、密码、证书和加密密钥的访问。集中化的机密管理面临挑战,尤其是在应用程序方面。应用程序不保密,秘密通常在不同的应用程序之间共享。Vault以动态机密的形式给出了这些问题的答案。动态机密是按需生成的,对客户端是唯一的。这与静态机密相反,静态机密是预先定义的,通常由不同的客户机共享。Vault将每个动态机密与租约关联,并在租约过期时自动销毁凭据。相比之下,静态秘密的生命周期通常要长得多。动态机密允许我们管理意图(例如,web服务器需要数据库访问),而不是管理凭据(例如,提供给需要访问数据库的web服务器的身份验证数据)。这使我们能够在解决主要挑战的同时实现相同的最终目标,包括泄漏应用程序、不可否认性、自动轮换和实际撤销。了解我们为什么需要动态秘密了解更多细节。Vault还对公钥证书应用动态秘密方法,充当签名中介来生成短期证书。这允许根据需要按需生成证书,并自动轮换。在这篇文章中,我们将研究使用Vault进行证书管理所涉及的最常见的操作员活动。我们将涵盖:启用和配置PKI引擎。正在创建角色并生成证书。吊销证书并更新证书吊销列表(CRL)。与应用程序集成。»启用和配置PKI引擎保险库支持许多秘密引擎。要使用机密引擎,请在给定的路径或装入点启用它。安装和配置Vault之后,您需要启用和配置PKI机密引擎。$vault secrets启用pki成功!已在以下位置启用pki机密引擎:pki/默认情况下,引擎将在以其类型命名的路径上启用(例如,pki引擎的pki,如上所示)。除了少数例外,机密引擎可以在多个路径上启用,方法是使用唯一的名称启用每个路径。启用的机密引擎无法看到彼此的数据,即使它们属于同一类型。若要指定装入点,请在启用引擎时使用-path参数。例如,要创建第二个PKI机密引擎作为中间签名机构,请在创建上面的第一个引擎PKI之后执行以下操作:$vault secrets enable-path=pki内部pki成功!已在以下位置启用pki机密引擎:pki inter/要向secrets引擎的这个实例发出命令,您需要使用pki中间前缀,而不是pki。例如:vault write pki inter/config/ca而不是vault write pki/config/ca。»调整全局TTL通常,为这个秘密引擎调整令牌和租约的全局最大生存时间(TTL)也是有意义的。默认值为30天,这可能太短。单个角色可以限制此值在每个证书的基础上更短。以下是如何将TTL调整为一年:$vault secrets tune-max lease ttl=8760h pki成功!把秘密引擎调到:pki/您将需要为您启用的每个PKI引擎执行此操作。»配置根和/或中间CA每个PKI机密引擎都必须配置一个CA证书和关联的私钥。实现这一点有三种方法:生成自签名根CA生成中间CA(使用证书签名请求CSR进行签名)将PEM编码的证书和私钥包直接设置到后端您还需要配置根CA。您可以让Vault生成自签名的根CA或提供根CA的详细信息。每个根CA都有单独的端点。要生成自签名根CA,请使用pki/root/generate端点:$vault write pki/root/generate/internal\公用名=我的-网站\ttl=8760小时要生成中间CA,请使用/pki/mediate/generate/endpoint:$vault write pki/intermediate/generate/内部公用名=example.com网站data=@pem_bundle.json要设置PEM编码的证书和私钥捆绑包,请使用pki/config/ca端点:$vault写入pki/config/capem_bundle=@pem_bundle.json每个机密引擎只允许一个CA证书。如果要从多个CA颁发证书,请在多个装载点装载PKI机密引擎,每个装载点都有单独的CA证书。一个常见的推荐模式是使用一个mount作为根CA,并且只使用这个CA来签署来自其他PKI secrets引擎的中间CA csr。有关详细信息,请参阅在HashiCorp Learn上构建您自己的证书颁发机构(CA)或我们的网络研讨会Streamline Certificate Management。»配置颁发证书终结点的URL值对于您启用的每个PKI引擎,您需要配置用于颁发证书终结点和CRL分发点的url值,这些分发点将编码到已颁发的证书中:$vault写入pki/config/url\颁发证书="http://127.0.0.1:8200/v1/pki/ca"\crl分布点="http://127.0.0.1:8200/v1/pki/crl"成功!数据写入:pki/config/url»创建角色和生成证书生成证书需要您提供一个角色。角色定义设置生成证书的条件。使用/pki/roles/:name终结点创建和更新角色:$vault write pki/角色/示例.com\允许的\u域=example.com网站\allow_subdomains=true max_ttl=72小时成功!数据写入:pki/roles/example.comroles端点接受许多参数,几乎可以容纳任何发出策略。如果客户端请求角色不允许的证书,则该请求将被拒绝。创建角色后,可以使用该角色生成具有pki/issue终结点的证书:$vault write pki/问题/示例.com\公用名=我的.example.com键值--- -----证书-----开始证书-----通过提供与现有证书相同的通用名称,可以随时更新证书。除非明确撤销,否则原始证书将在其原始生存期内继续有效。»吊销证书和轮换CRL如果必须吊销证书,您可以轻松地执行吊销操作,这将导致CRL(证书吊销列表)重新生成。重新生成CRL时,将从CRL中删除所有过期的证书。$vault write pki/revoke序列号=操作员还可以使用pki/crl/rotate端点直接触发crl的旋转。由于此端点不会摄取任何数据,因此您需要使用"vault读取"命令而不是"写入":$vault读取pki/crl/rotate键值--- -----成功是真的吗与所有Vault命令一样,您还可以直接与API交互,例如:$卷曲\--标题"X-Vault-Token:…"\:8200/v1/pki/crl/旋转此外还有Vault UI(在0.10+版本中可用)以及Vault Enterprise。使用tidy端点,操作员可以通过定期删除已过期且超过过期时间的某个缓冲期的证书来优化存储后端和CRL。$vault write pki/tidy tidy_cert_store=true tidy_reviewed_certs=true»与应用程序集成您已经可以看到使用Vault生成PKI证书如何节省操作员的时间。生成一个私有密钥,然后等待生成一个单独的CA密钥验证过程,然后替换成一个冗长的CA验证过程。若要进一步自动化该过程,请使用模板呈现工具(如conver template)。consur Template是一个守护进程,用于查询consur或Vault集群,并更新文件系统上任意数量的指定模板。渲染模板需要模板文件和模板配置。模板文件以Go模板格式编写,配置文件使用HCL。(见领事模板自述文件.md以获取更多文档。)使用保险库生成PKI证书时,证书、私钥和任何中间证书都将作为同一API调用的一部分返回。大多数应用程序要求将这些数据放在系统上的单独文件中。以下是可用于检索所需证书文件并将其保存在本地的模板:{-/*/tmp/证书*/ -}}{{使用机密"pki/issue/example dot com""公用名"=我的.example.com" }}{{ .数据.证书}}{{end}}{-/*/tmp/约三方物流*/ -}}{{使用机密"pki/issue/example dot com""公用名"=我的.example.com" }}{{ .数据发布}}{{end}}{-/*/tmp/关键字.tpl*/ -}}{{使用机密"pki/issue/example dot com""公用名"=我的.example.com" }}{{ .Data.private_密钥}}{{end}}with secret指令使用给定的参数("公共名称")查询所提供的API端点("pki/issue/EXPLICATE dot com")的保险库=我的.example.com"). 这相当于我们前面展示的生成证书的Vault命令:Vault write pki/issue/example dot com。由管理器返回的数据写入保险库。数据.证书, .数据发布,和。Data.private_密钥,它直接对应于Vault API返回的数据:{..."数据":{"certificate":"-----开始证书---","正在颁发\-ca":"----开始证书-----","private_key":"-----开始RSA私钥---",...},}在本例中,有三个不同的输入模板。但是,当在同一个conver模板进程下运行时,它们被压缩到一个API调用中,共享结果数据。这里有一个例子