AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 770311
Accepted
Florent
Florent
Asked: 2016-04-15 04:57:07 +0800 CST2016-04-15 04:57:07 +0800 CST 2016-04-15 04:57:07 +0800 CST

PKI EJBCA : 从 EJBCA 实例中提取 CA 并保留子 CA

  • 772

我正在寻找一种从 EJBCA 实例中提取 CA 的解决方案,将其放在外部驱动器上,例如,该驱动器被固定在保险箱中。因此,我只保留用于在 EJBCA 实例中签署最终用户证书的子 CA。

然后我只会在需要再次生成 sub-ca 或撤销已经创建的 sub-ca 时将其放回去。

这样我就可以确保即使我的服务器被入侵,我确信只有剩余的 sub-ca 被入侵,但我的根 ca 仍然有效。

有没有办法做这样的事情?

谢谢。

certificate certificate-authority pki
  • 1 1 个回答
  • 1568 Views

1 个回答

  • Voted
  1. Best Answer
    Jenny D
    2016-04-15T05:36:18+08:002016-04-15T05:36:18+08:00

    使根 CA 脱机是一个可靠的安全策略,因此这是一个很好的开始。但是,如果您希望它完全分开,您不应该首先在同一服务器中构建根 CA 和子 CA,然后删除根 CA - 相反,您应该从一开始就单独设置它们,这样您就不会不需要通过任何额外的努力将它们分开。我将在下面列出几种解决方法,以及一种在将实际 CA 保持在同一个位置的同时锁定密钥的方法。

    1 - 完全独立的服务器

    最安全的方法是花钱解决问题 - 即为根 CA 获取单独的服务器。在该服务器上创建根 CA。然后转到您将在其上运行颁发 CA 的服务器并在该服务器上创建子 CA。让根 CA 签署子 CA;EJBCA 用户指南中有关于如何执行此操作的信息。完成后,您可以锁定带有根 CA 的服务器。

    2 - 单独的磁盘

    第二种方法是拥有一个单独的 EJBCA/JBoss 实例和数据库(通常是 MySQL),其中所有数据都存储在可移动磁盘上。优点是您没有额外的服务器。缺点是增加了一些复杂性 - 你需要单独的配置文件和 systemd 启动配置/初始化文件,等等。但是你基本上会以与单独服务器相同的方式进行操作,除了关闭整个服务器,而是关闭 JBoss 和数据库实例,卸载它们的数据所在的磁盘,然后锁定磁盘.

    3 - 删除密钥而不是磁盘/服务器

    您可以将根 CA 与发布 CA 一起保留,但删除其私钥。这实际上削弱了它 - 它在那里,但它不能签署任何东西,所以它不能被滥用。这是最便宜的方式,并且在您使用根 CA 时也更容易。在第一次测试之前请务必备份!

    下面的所有步骤都是从命令行完成的,而不是从 Web GUI 完成的。您可以从 GUI 中完成其中的一些操作,但您仍然需要访问实际服务器才能移动内容,所以我发现从那里开始做所有事情都更容易。

    1. 将根 CA 密钥导出到 PKCS#12 文件
    $ bin/ejbca.sh ca exportca TestCA /mnt/USBDrive/TestCA.p12
    使用 JBoss JNDI 提供程序...
    输入密钥库密码:YourVeryGoodPassword
    
    1. 卸载 USB 驱动器并将其锁定在保险箱中。

    2. 从服务器中删除密钥库

    $ bin/ejbca.sh ca removekeystore TestCA
    使用 JBoss JNDI 提供程序...
    

    如果您现在查看 GUI,您将看到 TestCA 处于脱机状态并且无法激活。

    1. 当您想再次使用根 CA 时,请导入密钥库:
    $ bin/ejbca.sh ca restorekeystore TestCA /mnt/USBDrive/TestCA.p12 -s SignatureKeyAlias -e EncryptionKeyAlias
    使用 JBoss JNDI 提供程序...
    输入密钥库密码:YourVeryGoodPassword
    $
    

    当然,一旦你完成了你正在做的任何事情,就像在第 3 步中一样再次删除密钥库。

    • 5

相关问题

  • 为 IIS 7.0 问题创建证书

  • CodeCollaborator svn 访问

  • 为 IIS6 自行生成 SSL 证书?

  • 如何模拟连接到 HTTPS 并记录握手?

  • SQL Server 2000 加密证书

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve