如何创建自己的自签名根证书和要在Java密钥库中导入的中间CA?

史诗熊猫力量

如何创建要在Java密钥库中导入的自签名根证书和中间CA?

我们将其用于SSL和TLS,稍后将用于基于客户端证书的CLIENT-AUTH身份验证。

使用OpenSSL和KeyTool。

带轿车

对于任何想要生成链和大量证书的人来说,只是一个补充说明。完善@EpicPandaForce自己的答案,以下是一个脚本,该脚本在中创建一个根CA,在中创建一个root-ca/中间CA,intermediate/在中创建三个证书out/,每个证书都用该中间CA签名。

#!/bin/bash -x

set -e

for C in `echo root-ca intermediate`; do

  mkdir $C
  cd $C
  mkdir certs crl newcerts private
  cd ..

  echo 1000 > $C/serial
  touch $C/index.txt $C/index.txt.attr

  echo '
[ ca ]
default_ca = CA_default
[ CA_default ]
dir            = '$C'                     # Where everything is kept
certs          = $dir/certs               # Where the issued certs are kept
crl_dir        = $dir/crl                 # Where the issued crl are kept
database       = $dir/index.txt           # database index file.
new_certs_dir  = $dir/newcerts            # default place for new certs.
certificate    = $dir/cacert.pem          # The CA certificate
serial         = $dir/serial              # The current serial number
crl            = $dir/crl.pem             # The current CRL
private_key    = $dir/private/ca.key.pem  # The private key
RANDFILE       = $dir/.rnd                # private random number file
nameopt        = default_ca
certopt        = default_ca
policy         = policy_match
default_days   = 365
default_md     = sha256

[ policy_match ]
countryName            = optional
stateOrProvinceName    = optional
organizationName       = optional
organizationalUnitName = optional
commonName             = supplied
emailAddress           = optional

[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name

[req_distinguished_name]

[v3_req]
basicConstraints = CA:TRUE
' > $C/openssl.conf
done

openssl genrsa -out root-ca/private/ca.key 2048
openssl req -config root-ca/openssl.conf -new -x509 -days 3650 -key root-ca/private/ca.key -sha256 -extensions v3_req -out root-ca/certs/ca.crt -subj '/CN=Root-ca'

openssl genrsa -out intermediate/private/intermediate.key 2048
openssl req -config intermediate/openssl.conf -sha256 -new -key intermediate/private/intermediate.key -out intermediate/certs/intermediate.csr -subj '/CN=Interm.'
openssl ca -batch -config root-ca/openssl.conf -keyfile root-ca/private/ca.key -cert root-ca/certs/ca.crt -extensions v3_req -notext -md sha256 -in intermediate/certs/intermediate.csr -out intermediate/certs/intermediate.crt

mkdir out

for I in `seq 1 3` ; do
  openssl req -new -keyout out/$I.key -out out/$I.request -days 365 -nodes -subj "/CN=$I.example.com" -newkey rsa:2048
  openssl ca -batch -config root-ca/openssl.conf -keyfile intermediate/private/intermediate.key -cert intermediate/certs/intermediate.crt -out out/$I.crt -infiles out/$I.request
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#从自签名的根CA生成中间证书

来自分类Dev

在Java cacerts中导入根证书和中间证书的正确方法

来自分类Dev

在Linux中导入根CA证书

来自分类Dev

在Linux中导入根CA证书

来自分类Dev

Windows:如何创建自签名根证书以及使用自签名根证书签名的自签名证书

来自分类Dev

如何创建自己的证书和密钥文件?

来自分类Dev

保护密钥库传输安全层 (TLS) 中的根证书和中间证书

来自分类Dev

Java BouncyCastle ECC密钥和自签名证书

来自分类Dev

OpenSSL自签名根CA证书:设置开始日期

来自分类Dev

导入根存储的非自签名证书是否需要(自签名)颁发者也导入根存储?

来自分类Dev

具有CA:TRUE和“密钥用法”的自签名证书未设置为签署证书-安全吗?

来自分类Dev

具有CA:TRUE和“密钥用法”的自签名证书未设置为签署证书-安全吗?

来自分类Dev

自签名密钥证书

来自分类Dev

如何在Jenkins Docker容器上的LDAP密钥库中添加CA根证书?

来自分类Dev

在Synology中导入根证书

来自分类Dev

用于SSL身份验证的自签名证书和客户端密钥库

来自分类Dev

如何创建由中间证书签名的SSL证书

来自分类Dev

使用自签名证书和CA的Android SSL HTTP请求

来自分类Dev

如何创建自签名SSL证书?

来自分类Dev

如何创建自签名SSL证书?

来自分类Dev

以编程方式区分自签名证书和CA签名证书-IIS绑定

来自分类Dev

以编程方式区分自签名证书和CA签名证书-IIS绑定

来自分类Dev

使用现有的中间 CA 密钥和证书与 keytool 生成客户端证书

来自分类Dev

如何使用带有自签名证书/密钥的SslStream / AuthenticateAsServer?

来自分类Dev

代码签名证书-从Godaddy SPC和密钥文件创建PFX

来自分类Dev

如何使用我自己的CA证书签名的具有多个DNS条目的SSL证书

来自分类Dev

您如何找到要在Gradle中导入的版本/库?

来自分类Dev

关于本地网络上的 TLS 证书、自签名证书和 CA 的将死

来自分类Dev

根 CA 证书可以位于证书路径的中间吗?

Related 相关文章

  1. 1

    C#从自签名的根CA生成中间证书

  2. 2

    在Java cacerts中导入根证书和中间证书的正确方法

  3. 3

    在Linux中导入根CA证书

  4. 4

    在Linux中导入根CA证书

  5. 5

    Windows:如何创建自签名根证书以及使用自签名根证书签名的自签名证书

  6. 6

    如何创建自己的证书和密钥文件?

  7. 7

    保护密钥库传输安全层 (TLS) 中的根证书和中间证书

  8. 8

    Java BouncyCastle ECC密钥和自签名证书

  9. 9

    OpenSSL自签名根CA证书:设置开始日期

  10. 10

    导入根存储的非自签名证书是否需要(自签名)颁发者也导入根存储?

  11. 11

    具有CA:TRUE和“密钥用法”的自签名证书未设置为签署证书-安全吗?

  12. 12

    具有CA:TRUE和“密钥用法”的自签名证书未设置为签署证书-安全吗?

  13. 13

    自签名密钥证书

  14. 14

    如何在Jenkins Docker容器上的LDAP密钥库中添加CA根证书?

  15. 15

    在Synology中导入根证书

  16. 16

    用于SSL身份验证的自签名证书和客户端密钥库

  17. 17

    如何创建由中间证书签名的SSL证书

  18. 18

    使用自签名证书和CA的Android SSL HTTP请求

  19. 19

    如何创建自签名SSL证书?

  20. 20

    如何创建自签名SSL证书?

  21. 21

    以编程方式区分自签名证书和CA签名证书-IIS绑定

  22. 22

    以编程方式区分自签名证书和CA签名证书-IIS绑定

  23. 23

    使用现有的中间 CA 密钥和证书与 keytool 生成客户端证书

  24. 24

    如何使用带有自签名证书/密钥的SslStream / AuthenticateAsServer?

  25. 25

    代码签名证书-从Godaddy SPC和密钥文件创建PFX

  26. 26

    如何使用我自己的CA证书签名的具有多个DNS条目的SSL证书

  27. 27

    您如何找到要在Gradle中导入的版本/库?

  28. 28

    关于本地网络上的 TLS 证书、自签名证书和 CA 的将死

  29. 29

    根 CA 证书可以位于证书路径的中间吗?

热门标签

归档