Openssl版本:0.9.8 版本,可从http://www.openssl.org 处下载。
- 先建立如下目录结构:
$home/testca # testca 是待建CA的主目录
├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录)
├─private/ # private目录用来存放CA私钥
└─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件
此外使用命令
echo "01" > serial
touch index.txt
在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。
- 生成CA的私钥和自签名证书 (根证书)
创建配置文件:vi "$HOME/testca/conf/gentestca.conf"
文件内容如下:
####################################
[ req ]
default_keyfile = /home/cx/testCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions
[ ca_distinguished_name ]
organizationName = ss
organizationalUnitName = sstc
commonName = sstcCA
emailAddress = GChen2@statestreet.com #自己的邮件地址
[ ca_extensions ]
basicConstraints = CA:true
########################################
然后执行命令如下:
cd "$HOME/testca"
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"
执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888
可以用如下命令查看一下CA自己证书的内容
openssl x509 -in cacert.pem -text –noout
创建一个配置文件,以便后续CA日常操作中使用
vi "$HOME/testca/conf/testca.conf"
文件内容如下:
########################################
[ ca ]
default_ca = testca # The default ca section
[ testca ]
dir = /home/cx/testCA # top dir
database = $dir/index.txt # index file.
new_certs_dir = $dir/newcerts # new certs dir
certificate = $dir/cacert.pem # The CA cert
serial = $dir/serial # serial no file
private_key = $dir/private/cakey.pem # CA private key
RANDFILE = $dir/private/.rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # message digest method to use
unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
Policy = policy_any # default policy
[ policy_any ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
########################################
- 自己生成公钥密钥,并用测试CA签发数字证书
我们在平时测试时,可以自己用openssl为服务器或用户生成公钥密钥,并用上面创建的CA签发对应私钥(密钥)的数字证书。
假设,我们就用刚才创建CA的操作系统用户为名为testuser的用户创建数字证书,我们要把待创建的私钥、证书等都放在目录$HOME/testuser下:
Ø 创建密钥和证书请求(证书请求里包含了公钥)
创建$HOME/testuser目录并执行命令:
mkdir $HOME/testuser
cd $HOME/testuser
openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM -subj "/O=TestCom/OU=TestOU/CN=testuser"
执行过程中需要输入私钥的保护密码,假设我们输入密码: 222222
其中的CN最好和服务器名或IP地址一致。
执行完后,testkey.pem即为用户的密钥,而testreq.pem即为证书请求。
可以用openssl req -in testreq.pem -text -noout查看证书请求的内容。
Ø 用测试CA为testuser签发证书
同样还在$HOME/testuser目录下执行命令:
openssl ca -in testreq.pem -out testcert.pem -config "$HOME/testca/conf/testca.conf"
执行过程中需要输入CA的密钥保护密码(刚才设置的888888),并且最后询问你是否要给该用户签发证书时要选y。
执行完后,testcert.pem即为证书,
可以用命令openssl x509 -in testcert.pem -text -noout查看证书内容。
Ø 制作一个PKCS12格式的文档(个人数字证书)
我们制作的这个PKCS#12文件将包含密钥、证书和颁发该证书的CA证书。该文件可以直接用于服务器数字证书或个人数字证书。
把前几步生成的密钥和证书制作成一个pkcs12文件的方法执行命令:
openssl pkcs12 -export -in testcert.pem -inkey testkey.pem -out testuser.p12 -name testuser -chain -CAfile "$HOME/testca/cacert.pem"
执行过程中需要输入保护密钥的密码(222222),以及新的保护pkcs12文件的密码。
- CA 的日常操作
Ø 根据证书申请请求签发证书
假设收到一个证书请求文件名为req.pem,文件格式应该是PKCS#10格式(标准证书请求格式)。
首先可以查看一下证书请求的内容,执行命令:
openssl req -in req.pem -text -noout
将看到证书请求的内容,包括请求者唯一的名字(DN)、公钥信息(可能还有一组扩展的可选属性)。
执行签发命令:
openssl ca -in req.pem -out cert.pem -config "$HOME/testca/conf/testca.conf"
执行过程中会要求输入访问CA的私钥密码(刚才设置的888888)。
完成上一步后,签发好的证书就是cert.pem,另外$HOME/testca/newcerts里也会有一个相同的证书副本(文件名为证书序列号)。
你可以执行以下语句来查看生成的证书的内容:
openssl x509 -in cert.pem -text –noout
Ø 吊销证书(作废证书)
一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)
假设需要被吊销的证书文件为cert.pem,则执行以下命令吊销证书:
openssl ca -revoke cert.pem -config "$HOME/testca/conf/testca.conf"
生成证书吊销列表文件(CRL)
准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:
openssl ca -gencrl -out testca.crl -config "$HOME/testca/conf/testca.conf"
还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。
可以用以下命令检查testca.crl的内容:
openssl crl -in testca.crl -text -noout
分享到:
相关推荐
1. 创建根证书:使用工具如OpenSSL,你可以生成一个自签名的根证书。这涉及生成私钥和证书请求,然后使用私钥签署证书请求,形成根证书。 2. 将根证书打包成exe:你需要一个能够将证书文件转换为可执行文件的工具,...
在描述中提到的“CA证书制作工具”,可能是一个集成了这些功能的软件,比如OpenSSL命令行工具,或者一些图形化的工具如Certify The Web、Wosign等。这些工具简化了证书的创建和管理流程,对于不熟悉命令行操作的用户...
在这个汉化软件中,用户可以便捷地制作自己的CA自签名证书,这对于个人或小型组织来说是一种经济且实用的解决方案。 首先,了解CA证书的基本概念是必要的。CA证书是公钥基础设施(PKI)的一部分,它为网络上的实体...
通过自签名的CA证书,企业可以构建自己的内部信任体系,而不需要依赖外部商业CA。 总之,CA证书脚本在Windows和Linux系统中的使用是实现安全通信的关键步骤。正确配置和管理这些脚本,能够确保组织的数据安全和网络...
使用`openssl x509`命令,将上一步的请求签名,设置有效期为10000天,使用SHA1散列函数,扩展选项为v3_ca,最终生成根证书(`certs/ca.cer`)。 4. **根证书转换**: 将根证书转换成PKCS12格式(`certs/ca.p12`)...
使用OpenSSL,你可以创建一个自签名的根证书(Root CA),如压缩包内的"MiniCA2"和"MiniCA",它们是简单的CA(证书颁发机构)实现。通过以下步骤,你可以创建自己的证书: - 初始化CA私钥和证书请求:`openssl req ...
配置过程通常包括生成私钥、制作CSR(Certificate Signing Request)、向CA申请证书、安装证书及中间证书,以及更新服务器配置文件以包含这些证书。 **3. OpenSSL的其他应用** OpenSSL不仅仅用于SSL/TLS连接,还...
总结来说,制作第一张自己的SSL证书是一个涉及生成密钥对、创建CSR、自签名证书、配置服务器以及安装验证的过程。虽然自签名证书在测试环境中可以使用,但在生产环境中,建议使用权威CA签发的证书以确保用户的信任和...
对于不熟悉数字证书制作的用户来说,这是一份非常有价值的参考资料,能够帮助他们了解如何正确地创建和使用数字证书。 总的来说,这个工具包集合对于开发人员、系统管理员或者任何需要保证软件安全性的个人来说都是...
在实验中,使用OpenSSL完成证书的制作、申请、发放任务,有助于加深对证书管理和安全通信的理解。 #### 总结 通过以上实验内容的学习,不仅能够深入了解数字证书和PKI的基本概念,还能掌握在Windows Server 2003...
- 然后,使用`openssl x509 -req -in csr.pem -signkey key.pem -out cert.crt`命令签发自签名证书。 - 最后,通过`openssl pkcs12 -export -out pfx_file.pfx -inkey key.pem -in cert.crt`命令生成PFX文件,会...
2. `sign_cert.sh`: 可能用于使用自签发CA(如`openssl x509 -req -days <valid_days> -in cert.csr -signkey privkey.key -out cert.crt`)为证书签名。 3. `install_cert.sh`: 安装生成的证书到系统信任存储,以便...
为了使客户端认证工作,你需要创建自签名的CA证书、服务器证书和客户端证书。这可以通过`openssl`工具完成: 1. 创建CA私钥和根证书: ```bash openssl genrsa -out ca.key 2048 openssl req -new -x509 -days ...
这里我们使用 GMSSL 工具生成 CA(证书颁发机构)密钥、CSR(证书签名请求)、CRT(证书)以及服务器密钥和 CSR。注意,在生成证书时,使用了 SM2P256V1 这种国密算法。这确保了证书遵循国内的加密标准。 总结来说...
SSL生成器 创建证书颁发机构,密钥和证书的命令行脚本。 这是基于Jamie Nguyen的《 指南的。... 创建一个由现有密钥签名的新证书 错误的 例子 在/tmp目录中创建新的服务器端CA,密钥和证书文件。 $ node main.js
在实验中,我们将实际操作这些概念,这将涉及到使用特定的工具或软件,比如OpenSSL,来进行密钥对的生成、证书的制作、数字信封的封装与解封等。此外,理解并处理可能出现的错误和异常情况也是实验的重要部分,例如...