用Keytool和OpenSSL生成和签发数字证书

用Keytool和OpenSSL生成和签发数字证书
用Keytool和OpenSSL生成和签发数字证书

4.2.1 建立工作目录

demoCA

4.2.2 生成CA私钥以及自签名根证书

4.2.2.1 生成CA私钥

openssl genrsa -out demoCA\ca-key.pem 1024

4.2.2.2 生成待签名证书

openssl req -new -out demoCA\ca-req.csr -key demoCA\ca-key.pem

4.2.2.3 用CA私钥进行自签名

openssl x509 -req -in demoCA\ca-req.csr -out ca\ca-cert.pem -signkey demoCA\ca-key.pem -days 365

4.3 设置Tomcat 4.x

在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。

4.3.1建立工作目录

mkdir server

4.3.2 生成server端证书

4.3.2.1 生成KeyPair

%JDK_HOME%\bin\keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore server\server_keystore

4.3.2.2 生成待签名证书

%JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalg

MD5withRSA -file server\server.csr -keypass 123456 -keystore

server\server_keystore -storepass changeit

4.3.2.3 用CA私钥进行签名

openssl x509 -req -in server\server.csr -out server\server-cert.pem -CA demoCA\ca-cert.pem -CAkey demoCA\ca-key.pem -CAserial

demoCA/ca-cert.srl -CAcreateserial -days 365

4.3.2.4 导入信任的CA根证书到JSSE的默认位置

(%JDK_ROOT %/jre/security/cacerts)

%JDK_HOME%\bin\ keytool -import -v -trustcacerts -storepass 123456

-alias my_ca_root -file demoCA\ca-cert.pem

-keystore %JDK_HOME%\jre\lib\security\cacerts

4.3.2.5 把CA签名后的server端证书导入keystore

%JDK_HOME%\bin\keytool -import -v -trustcacerts -storepass changeit

-alias tomcat_server -file server\server-cert.pem -keystore

server\server_keystore

%JDK_HOME%\bin\keytool -import -v -alias tomcat_server -file

server\server-cert.pem -storepass 123456 -keystore server_keystore

4.3.2.6 查看server端证书

keytool -list -keystore %JDK_HOME%\jre\lib\security\cacerts

keytool -list -keystore server\server_keystore

4.3.3 修改server.xml使Tomcat支持SSL

首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置

clientAuth="false"。

enableLookups="true"

acceptCount="10" debug="0" scheme="https" secure="true">

keystoreFile="%TCAT_HOME%/conf/server_keystore"

keystorePass="changeit"

/>

然后把文件server\server_keystore复制到目录%TCAT_HOME%\conf\下。

4.4 在IE中安装个人证书

4.4.1 建立工作目录

mkdir client

4.4.2 生成client私钥并用CA私钥签名

4.4.2.1 生成client私钥

openssl genrsa -out client\client-key.pem 1024

4.4.2.2 生成待签名证书

openssl req -new -out client\client-req.csr -key client\client-key.pem

4.4.2.3 用CA私钥进行签名

openssl x509 -req -in client\client-req.csr -out client\client.crt -signkey

client\client-key.pem

-CA ca\ca-cert.pem -CAkey ca\ca-key.pem -CAcreateserial -days 365

4.4.2.4 生成client端的个人证书

因为JSSE1.0.2没有完全实现了对PKCS#12格式文件的操作(只能读取,不能输出),所以在这里需要用openssl制作client端的个人证书(包含私钥)。

openssl pkcs12 -export -clcerts -in client\client.crt -inkey

client\client-key.pem -out client\client.p12

4.4.2.5 安装信任的根证书

#把ca\ca-key.pem改名为ca\ca-key.cer,在client端的IE中使用"工具' Internet选项' 内容' 证书' 导入"把我们生成的CA根证书导入,使其成为用户信任的CA。

运行这条命令CA才能被导入fireFox的服务器证书列表

中:/usr/local/ssl/ca# openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12

4.4.3 安装个人证书

把client.p12导入到client端的IE中作为个人证书,导入过程同4.4.2.5。

4.5 用IE浏览器使用SSL协议访问Tomcat

4.5.1 启动Tomcat 4.x

执行%TCAT_HOME%\bin\startup.bat启动Tomcat 4.x

4.5.2 用IE访问Tomcat 4.x

在IE浏览器的地址栏中输入https://localhost:8443,如果前面的操作都正确的话,应该可以看到Tomcat的欢迎页面。同时状态栏上的小锁处于闭合状态,表示您已经成功地与服务器建立了要求客户端验证的SSL 安全连接。

https://www.360docs.net/doc/2018246645.html,/duanzhimin528/archive/2010/06/22/324182.html

编码(也用于扩展名)

?.DER = 扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是―我有一个DER编码的证书‖,而不是―我有一

个DER证书‖。

?.PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—–BEGIN …―开始。

常用的扩展名

?.CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。

?CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll,

CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。

?.KEY = 扩展名KEY用于PCSK#8的公钥和私钥。这些公钥和私钥可以是DER编码或者PEM编码。

CRT文件和CER文件只有在使用相同编码的时候才可以安全地相互替代。

证书导入

Der/Cer证书导入:

要从某个文件中导入某个证书,使用keytool工具的-import命令:

keytool -import -file mycert.der -keystore mykeystore.jks

如果在 -keystore 选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。

如果不指定 -keystore 选项,则缺省密钥仓库将是宿主目录中名为 .keystore 的文件。如果该文件并不存在,则它将被创建。

创建密钥仓库时会要求输入访问口令,以后需要使用此口令来访问。可使用-list 命令来查看密钥仓库里的内容:

keytool -list -rfc -keystore mykeystore.jks

P12格式证书导入:

keytool无法直接导入PKCS12文件。

第一种方法是使用IE将pfx证书导入,再导出为cert格式文件。使用上面介绍的方法将其导入到密钥仓库中。这样的话仓库里面只包含了证书信息,没有私钥内容。

第二种方法是将pfx文件导入到IE浏览器中,再导出为pfx文件。

新生成的pfx不能被导入到keystore中,报错:keytool错误:

https://www.360docs.net/doc/2018246645.html,ng.Exception: 所输入的不是一个 X.509 认证。新生成的pfx文件可以被当作keystore使用。但会报个错误as unknown attr1.3.6.1.4.1.311.17.1,查了下资料,说IE导出的就会这样,使用Netscape就不会有这个错误.

第三种方法是将pfx文件当作一个keystore使用。但是通过微软的证书管理控制台生成的pfx文件不能直接使用。keytool不认此格式,报keytool错误:java.io.IOException: failed to decrypt safe contents entry。需要通过OpenSSL转换一下:

1)openssl pkcs12 -in mycerts.pfx -out mycerts.pem

2)openssl pkcs12 -export -in mycerts.pem -out mykeystore.p12

通过keytool的-list命令可检查下密钥仓库中的内容:

keytool -rfc -list -keystore mykeystore.p12 -storetype pkcs12

这里需要指明仓库类型为pkcs12,因为缺省的类型为jks。这样此密钥仓库就即包含证书信息也包含私钥信息。

P7B格式证书导入:

keytool无法直接导入p7b文件。

需要将证书链RootServer.p7b(包含根证书)导出为根rootca.cer和子rootcaserver.cer 。

将这两个证书导入到可信任的密钥仓库中。

keytool -import -alias rootca -trustcacerts -file rootca.cer -keystore testkeytrust.jks

遇到是否信任该证书提示时,输入y

keytool -import -alias rootcaserver -trustcacerts -file rootcaserver.cer -keystore testkeytrust.jks

一)keytool生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书

J2SDK在目录%JAVA_HOME%/bin提供了密钥库管理工具Keytool,用于管理密钥、证书和证书链。Keytool工具的命令在JavaSE6中已经改变,不过以前的命令仍然支持。Keytool也可以用来管理对称加密算法中的密钥。

最简单的命令是生成一个自签名的证书,并把它放到指定的keystore文件中:

keytool -genkey -alias tomcat -keyalg RSA -keystore c:/mykey

如果c:/mykey文件不存在,keytool会生成这个文件。按照命令的提示,回答一系列问题,就生成了数字证书。注意,公共名称(cn)应该是服务器的域名。这样keystore中就存在一个别名为tomcat的实体,它包括公钥、私钥和证书。这个证书是自签名的。

Keytool工具可以从keystore中导出证书,但是不能导出私钥。对于配置apache这样的服务器,就不太方便。这种情况下就完全用OpenSSL吧,下面将会介绍。不过keytool对于J2EE AppServer是很有用的,它们就是用keystore存储证书链的。keystore的作用类似于windows存放证书的方式,不过跨平台了,^_^下面用Keytool生成CSR(Certificate Signing Request),并用OpenSSL生成CA 签名的证书。

1. 准备

1) 在bin目录下新建目录demoCA、demoCA/certs、demoCA/certs 、demoCA/newcerts

2) 在demoCA建立一个空文件index.txt

3) 在demoCA建立一个文本文件serial, 没有扩展名,内容是一个合法的16进制数字,例如0000

4) 配置环境变量PATH,加入%JAVA_HOME%/bin,本文用的JavaSDK1.6

2. 生成CA的自签名证书

openssl req -new -x509 -keyout ca.key -out ca.crt -config https://www.360docs.net/doc/2018246645.html,f

3. 生成server端证书

1) 生成KeyPair生成密钥对

keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore server_keystore

输入common name时,要和服务器的域名保持一致。

2) 生成证书签名请求

keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file tomcat_server.csr -keypass 123456 -storepass 123456 -keystore server_keystore

3) 用CA私钥进行签名,也可以到权威机构申请CA签名。

openssl ca -in tomcat_server.csr -out tomcat_server.crt -cert ca.crt -keyfile ca.key -notext -config https://www.360docs.net/doc/2018246645.html,f

其中-notext表示不要把证书文件的明文内容输出到文件中去,否则在后面用keytool导入到keystore 时会出错。

4) 导入信任的CA根证书到keystore

keytool -import -v -trustcacerts -alias my_ca_root -file ca.crt -storepass 123456

-keystore server_keystore

5) 把CA签名后的server端证书导入keystore

keytool -import -v -alias tomcat_server -file tomcat_server.crt -storepass 123456 -keystore server_keystore

6) 查看server端证书

keytool -list -v -keystore server_keystore

可以看到tomcat_server的证书链长度是2

4. 生成client端证书

1) 生成客户端CSR

openssl genrsa -des3 -out tomcat_client.key 1024

openssl req -new -key tomcat_client.key -out tomcat_client.csr -config https://www.360docs.net/doc/2018246645.html,f

2) 用CA私钥进行签名,也可以到权威机构申请CA签名

openssl ca -in tomcat_client.csr -out tomcat_client.crt -cert ca.crt -keyfile ca.key -notext -config https://www.360docs.net/doc/2018246645.html,f

3) 生成PKCS12格式证书

openssl pkcs12 -export -inkey tomcat_client.key -in tomcat_client.crt

-out tomcat_client.p12

4) 使用Keytool列出pkcs12证书的内容:

keytool -rfc -list -keystore tomcat_client.p12 -storetype pkcs12

二)openssl生成私钥文件(.key)和签名请求文件(.csr),以及签发数字证书

操作目录是openssl/bin(没办法改不了环境变量,如果你可以改的话,就不用在这个目录下工作了),为了方便本人把apps下的https://www.360docs.net/doc/2018246645.html,f也复制到了这个目录下来。文件名都是以本人使用的来说了:

1.首先要生成服务器端的私钥(key文件):

openssl genrsa -des3 -out server.key 1024

运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!

去除key文件口令的命令:

openssl rsa -in server.key -out server.key

2.openssl req -new -key server.key -out server.csr -config https://www.360docs.net/doc/2018246645.html,f

生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

3.对客户端也作同样的命令生成key及csr文件:

openssl genrsa -des3 -out client.key 1024

openssl req -new -key client.key -out client.csr -config https://www.360docs.net/doc/2018246645.html,f

4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.

openssl req -new -x509 -keyout ca.key -out ca.crt -config https://www.360docs.net/doc/2018246645.html,f

5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:

Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config https://www.360docs.net/doc/2018246645.html,f Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config https://www.360docs.net/doc/2018246645.html,f

现在我们所需的全部文件便生成了.

另:

client使用的文件有:ca.crt,client.crt,client.key

server使用的文件有:ca.crt,server.crt,server.key

.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)---------------------------------------------------

合并证书文件(crt)和私钥文件(key):

#cat client.crt client.key > client.pem

#cat server.crt server.key > server.pem

JDK中keytool常用命令

-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书

-alias 产生别名

-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中

-keyalg 指定密钥的算法

-validity 指定创建的证书有效期多少天

-keysize 指定密钥长度

-storepass 指定密钥库的密码

-keypass 指定别名条目的密码

-dname 指定证书拥有者信息例如:"CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn" -list 显示密钥库中的证书信息keytool -list -v -keystore sage -storepass ....

-v 显示密钥库中的证书详细信息

-export 将别名指定的证书导出到文件keytool -export -alias caroot -file caroot.crt

-file 参数指定导出到文件的文件名

-delete 删除密钥库中某条目keytool -delete -alias sage -keystore sage

-keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage

-import 将已签名数字证书导入密钥库keytool -import -alias sage -keystore sagely -file sagely.crt

导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。

1.证书的显示

-list

[-v | -rfc] [-alias ]

[-keystore ] [-storepass ]

[-storetype ] [-provider ]

例如:keytool -list -v -alias RapaServer -keystore cacerts -storepass 12345678

keytool -list -v -keystore d2aapplet.keystore -storepass 12345678 -storetype IAIKKeystore

2.将证书导出到证书文件

例如:keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer

将把证书库monitor.keystore 中的别名为monitor 的证书导出到monitor.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。

keytool -export -keystore d2aApplet.keystore -alias RapaServer -file Rapa.cert -storetype IAIKKeystore

3.将keystore导入证书中

这里向Java默认的证书cacerts导入Rapa.cert

keytool -import -alias RapaServer -keystore cacerts -file Rapa.cert -keystore cacerts

4.证书条目的删除

keytool的命令行参数-delete 可以删除密钥库中的条目,如:keytool -delete -alias RapaServer -keystore d2aApplet.keystore ,这条命令将d2aApplet.keystore 中的RapaServer 这一条证书删除了。

5.证书条目口令的修改

使用-keypasswd 参数,如:keytool -keypasswd -alias RapaServer -keystore d2aApplet.keystore,可以以交互的方式修改d2aApplet.keystore证书库中的条目为RapaServer 的证书。

Keytool -keypasswd -alias RapaServer -keypass 654321 -new 123456 -storepass 888888

-keystore d2aApplet.keystore这一行命令以非交互式的方式修改库中别名为RapaServer 的证书的密码为新密码654321,行中的123456 是指该条证书的原密码,888888 是指证书库的密码。

由于原有的格式都是pem格式,在导入证书库之前(即导入jks文件)需要转换成cer 格式,生成文件cacert.cer、tomcatcert.cer

openssl x509 -in cacert.pem -out cacert.cer

openssl x509 -in tomcatcert.pem -out tomcatcert.cer

Openssl生成证书步骤说明

Openssl生成证书步骤说明 命令操作: 1、生成普通私钥: 2、生成带加密口令的密钥: 在生成带加密口令的密钥时需要自己去输入密码。对于为密钥加密现在提供了一下几种算 通过生成的私钥去生成证书:

在生成证书的时候需要按照提示输入一些个人信息。 通过私钥生成公钥: 格式转换:(证书、私钥、公钥)(PEM <----->DER) 从DER格式转换成PEM格式一样,就是把inform的格式改成DERoutform的格式改成PEM 即可。 服务器和客户端认证的证书生成 下面是一个服务器和客户端认证的证书、私钥生成方法:(server.crt、client.crt、ca.crt) 用默认openssl配置文件生成证书,先创建文件夹 创建文件夹demoCA/newcerts: mkdir -p demoCA/newcerts 创建个空文件index.txt: touch demoCA/index.txt 向文件serial中写入01: echo 01 > demoCA/serial 1.首先要生成服务器端的私钥(key 文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key 文件(参数des3 便是指加密算法,当然也可以选用其他你认 为安全的算法.),以后每当需读取此文件(通过openssl 提供的命令或API)都需输入口令.如果觉得不方 便,也可以去除这个口令,但一定要采取其他的保护措施!

去除key 文件口令的命令: openssl rsa -in server.key -out server.key 2.openssl req -new -key server.key -out server.csr 生成Certificate Signing Request(CSR),生成的csr 文件交给CA 签名后形成服务端自己的证书. 屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可. 3.对客户端也作同样的命令生成key 及csr 文件: openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr 4.CSR 文件必须有CA 的签名才可形成证书.可将此文件发送到verisign 等地方由它验证,要交一大笔钱, 何不自己做CA 呢. openssl req -new -x509 -keyout ca.key -out ca.crt 5.用生成的CA 的证书为刚才生成的server.csr,client.csr 文件签名: openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key 现在我们所需的全部文件便生成了. 另: client 使用的文件有:ca.crt,client.crt,client.key server 使用的文件有:ca.crt,server.crt,server.key .crt 文件和.key 可以合到一个文件里面,本人把2 个文件合成了一个.pem 文件(直接拷贝过去就行了)

自签名OpenSSL证书流程

自签名OpenSSL证书流程 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施! 去除key文件口令的命令: openssl rsa -in server.key -out server.key [生成过程中提示需要输入私钥的密码,现设为111111] 2.openssl req -new -key server.key -out server.csr -config https://www.360docs.net/doc/2018246645.html,f 生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可. [利用私钥生成CA的证书请求,在这个过程中,按步骤提示输入各种信息,注意前面国家、州等信息和以后生成客户端.csr文件等,需要填入的信息时,需要保持一致,否则验证会通不过] Country Name(只能填2个字母) : cn State or Province Name : sz Locality Name : ns Organization Name : vc Organization Unit Name : odc Common Name : rome Email Address : rome80@https://www.360docs.net/doc/2018246645.html,(邮箱名可以不一样,可以区别不同的证书) 其中有一个A challenge password,不知道做什么用,填111111 An optional company name : milano -config https://www.360docs.net/doc/2018246645.html,f是配置文件信息 在生成.csr和证书的.crt时,都要填入上述信息 3.对客户端也作同样的命令生成key及csr文件: openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr -config https://www.360docs.net/doc/2018246645.html,f 4.openssl genrsa -des3 -out ca.key 1024 [这步是自己加上去的,先生成ca的私钥]

Linux下利用openssl 生成SSL证书步骤

Linux下利用openssl 生成SSL证书步骤 1、概念 首先要有一个CA根证书,然后用CA根证书来签发用户证书。 用户进行证书申请:一般先生成一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的CA根证书来签发证书。 2、后缀详解 .key格式:私有的密钥 .csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request 的缩写 .crt格式:证书文件,certificate的缩写 .crl格式:证书吊销列表,Certificate Revocation List的缩写 .pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式 3、添加 index.txt 和 serial 文件 cd /etc/pki/CA/ touch /etc/pki/CA/index.txt touch /etc/pki/CA/serial echo 01 > /etc/pki/CA/serial 4、CA根证书的生成 4.1 生成CA私钥(.key) openssl genrsa -out ca.key 2048 [root@CA]# openssl genrsa -out ca.key 2048 Generating RSA private key, 2048 bit long modulus .............+++ .....+++ e is 65537 (0x10001) 4.2 生成CA证书请求(.csr) openssl req -new -key ca.key -out ca.csr [root@CA]# openssl req -new -key ca.key -out ca.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value,

使用OpenSSL建立根CA及自签名证书制作过程

使用OpenSSL建立根CA及自签名证书制作过程 2009-12-24 11:35:32| 分类:openssl |字号订阅 Openssl版本:0.9.8 版本,可从https://www.360docs.net/doc/2018246645.html,处下载。 1.先建立如下目录结构: $home/testca # testca 是待建CA的主目录 ├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录) ├─private/ # private目录用来存放CA私钥 └─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件 此外使用命令 echo "01" > serial touch index.txt 在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。 1.生成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@https://www.360docs.net/doc/2018246645.html, #自己的邮件地址 [ 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"

OpenSSL证书制作过程

比亚迪培训讲义 在J2EE中使用数字证书 深圳市金蝶中间件有限公司 2007年12月

Table of Contents 1 数字证书使用的场合 (3) 2 数字证书的颁发 (3) 2.1 概述 (3) 2.2 创建自签名CA (3) 2.2.1 生成ca私钥 (3) 2.2.2 生成ca待签名证书 (4) 2.2.3用CA私钥进行自签名,得到自签名的CA根证书 (4) 2.2.4 https://www.360docs.net/doc/2018246645.html,f配置文档 (5) 2.3 颁发服务器证书 (7) 2.3.1 生成服务器私钥对及自签名证书 (7) 2.3.2 生成服务器待签名证书 (7) 2.3.3 请求CA签名服务器待签名证书,得到经CA签名的服务器证书 (8) 2.3.4把CA根证书导入密钥库 mykeystore (8) 2.3.5把经过CA签名的服务器证书导入密钥库mykeystore (8) 2.4 颁发客户端证书 (9) 2.4.1 生成客户端私钥 (9) 2.4.2生成客户端待签名证书 (9) 2.4.3请求CA签名客户端待签名证书,得到经CA签名的客户端证书 (10) 生成客户端的个人证书client.p12 (10) 2.5 CA根证书导入客户端 (11) 2.6个人证书导入客户端 (11) 3 在J2EE中使用证书 (11) 3.1 配置SSL双向认证 (11) 3.1.1 服务器端密钥库和信任库 (12) 3.1.2修改Muxer服务 (12) 3.1.3修改SecurityService服务 (13) 3.2 在程序中获取证书信息 (13) 4 练习 (13) 5 附录 (14) 5.1 SSL v3的处理步骤 (14) 5.2 命令行调试SSL证书 (14)

利用openSSL实现SSl双向认证学习笔记

SSl双向认证学习笔记 2010-09-02 13:16:39| 分类:ssl | 标签:|字号大中小订阅 url]https://www.360docs.net/doc/2018246645.html,/sunyujia/archive/2008/10/03/3014667.aspx[/url] [url]https://www.360docs.net/doc/2018246645.html,/nataka/archive/2005/09/03/470539.aspx[/url] [url]https://www.360docs.net/doc/2018246645.html,/thread-743287-1-1.html[/url] 第一节基础知识 最近要做一个SSL的应用,先后了解了两个命令,一个是keytool,一个是openssl。keytool是JDK得集成环境 。只要安装了JDK,基本上都会有(^_^,除非你安装太老的!),我用的1.5。在安装openssl的时候,花了半天时间 。 用SSL进行双向身份验证意思就是在客户机连接服务器时,链接双方都要对彼此的数字证书进行验证,保证这 是经过授权的才能够连接(我们链接一般的SSL时采用的是单向验证,客户机只验证服务器的证书,服务器不验证客户 机的证书。而连接网上银行时使用的U盾就是用来存储进行双向验证所需要的客户端证书的)。 JDK工具KEYTOOL -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥 、私钥和证书 -alias 产生别名 -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中 -keyalg 指定密钥的算法 -validity 指定创建的证书有效期多少天 -keysize 指定密钥长度 -storepass 指定密钥库的密码 -keypass 指定别名条目的密码 -dname 指定证书拥有者信息例如:"CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn" -list 显示密钥库中的证书信息keytool -list -v -keystore 别名-storepass .... -v 显示密钥库中的证书详细信息 -export 将别名指定的证书导出到文件keytool -export -alias 别名-file 文件名.crt -file 参数指定导出到文件的文件名 -delete 删除密钥库中某条目keytool -delete -alias 别名-keystore sage -keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias 别名-keypass .... -new .... -storepass ... -keystore 别名 -import 将已签名数字证书导入密钥库keytool -import -alias 别名-keystore 证书名-file 文件名 (可以加.crt 后缀) 命令: 生成证书 keytool -genkey -keystore 文件名(可包含路径) -keyalg rsa -alias 别名-validity 有效期 查看证书 keytool -list -v -keystore 路径 把证书导出到文件 keytool -export -alias 别名-keystore 证书名-rfc -file 文件名(可包含路径) 修改密码 keytool -keypasswd -alias 别名-keypass 旧密码-new 新密码 导出证书到新的TrustStore keytool -import -alias 别名-file 文件名-keystore truststore 此处省略3000字,待补^_^

OpenSSL 命令常用证书操作

在OpenSSL开发包中,包含一个实用工具:openssl,比如我用MinGW GCC 编译OpenSSL 0.9.8k 后,openssl 就保存在out目录下。openssl 工具是完成密钥、证书操作和其它SSL 事务的入口环境,直接运行不带参数的openssl 命令后,可以得到一个shell 环境,在其中可以以交互的方式完成SSL 相关的安全事务。 不过有时,如果用一个带参数选项的openssl 命令完成操作,会更方便。下面是我使用openssl 做证书操作时,记录的常用命令用法。 1.生成密钥 生成RSA密钥,保存在file.key中,命令如下: 上面命令的含义是:产生RSA密钥,包括:私钥和公钥两部分,然后使用DES3算法,用用户输入的密码(passphrase)加密该密钥数据,保存在file.key中。 file.key默认以BASE64方式编码密钥数据,file.key的格式称为:PEM (Privacy Enhanced Mail)格式,在RFC 1421到RFC 1424中定义,PEM是早期用来进行安全电子邮件传输的标准,但现在广泛用在证书、证书请求、PKCS#7对象的存储上,所以证书文件也经常以.pem为扩展名。 2.不加密的密钥 如果在生成密钥时,使用了-des3等加密选项,则会生成被用户密码保护的加密密钥,以增强密钥数据的保密性(因为密钥文件中包含私钥部分)。但有时为了方便,需要不加密的明文密钥(这样安全性会降低),比如:使用

Apache的HTTPS服务,每次启动Apache服务时,都需要用户输入保护密钥的密码,感觉麻烦的话,可以使用明文密钥。 明文密钥可以使用不带-des3等加密选项的openssl命令生成,还可以使用以下命令将加密保护的密钥转换成明文密钥,当然转换过程需要用户输入原来的加密保护密码: 3.查看密钥 查看保存在file.key中的RSA密钥的细节,如果此文件是加密保护的,会提示用户输入加密此文件的密码,命令如下: 输出的内容均是RSA密钥数据的数学信息(模数、指数、质数等),从输出的结果中也可知file.key保存的RSA密钥数据包括:私钥和公钥两部分。 该命令也能查看其它工具生成的密钥,比如SSH,只要密钥文件符合openssl支持的格式。 4.生成证书请求 由file.key产生一个证书请求(Certificate Request),保证在file.csr 中,命令如下: 指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/https://www.360docs.net/doc/2018246645.html,f。 创建证书请求时,会要求用户输入一些身份信息,示例如下:

OpenSSL来制作证书,在IIS中配置HTTPS(SSL)笔记

info@https://www.360docs.net/doc/2018246645.html, 使用OpenSSL来制作证书,在IIS中配置HTTPS(SSL)笔记 下载Win32编译的openssl版本0.9.8e. 1.获取IIS证书请求:打开IIS,右键单击【默认网站】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,【新建证书】,【现在准备证书请求--下一步】,输入【名称】,输入【单位】和【部门】,输入【公用名称】,选择【国家】并输入【省】和【市县】并【下一步】,【下一步】,【下一步】,【完成】,IIS的证书请求已经获取,就是C:\certreq.txt。这里请牢记输入的信息。 2.准备openssl工作环境:把openssl(编译后的版本)解压到D:\OpenSSL-0.9.8e\下, 在bin目录下建立目录demoCA,在demoCA下建立private和newcerts目录, 并新建index.txt,内容为空 如果没有serial文件,则到openssl网站上下载openssl的源文件,解压后,到apps\demoCA下,拷贝serial文件过来,两个目录两个文件都放到新建的 demoCA下。 3.生成自签名根证书: openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.cer -days 3650 -config D:\OpenSSL-0.9.8e\https://www.360docs.net/doc/2018246645.html,f PEM pass phrase: password // 根证书私钥密码 Verifying - Enter PEM pass phrase: password Country Name: CN // 两个字母的国家代号 State or Province Name: HB // 省份名称 Locality Name: WUHAN // 城市名称 Organization Name: Skyworth TTG // 公司名称 Organizational Unit Name: Service // 部门名称 Common Name: https://www.360docs.net/doc/2018246645.html, // 你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址) Email Address: admin@https://www.360docs.net/doc/2018246645.html, // Email地址

linux下利用openssl来实现证书的颁发(详细步骤)

linux下利用openssl来实现证书的颁发(详细步骤) 1、首先需要安装openssl,一个开源的实现加解密和证书的专业系统。在centos下可以利用yum安装。 2、openssl的配置文件是https://www.360docs.net/doc/2018246645.html,f,我们一般就是用默认配置就可以。如果证书有特殊要求的话,可以修改配置适应需求。这样必须把相关的文件放到配置文件指定的目录下面。 3、首先需要利用openssl生成根证书,以后的服务器端证书或者客户端证书都用他来签发,可以建立多个根证书,就像对应不同的公司一样 #生成根证书的私钥 openssl genrsa -out /home/lengshan/ca.key #利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好openssl req -new -key /home/lengshan/ca.key -out /home/lengshan/ca.csr #自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt openssl x509 -req -days 3650 -in /home/lengshan/ca.csr -signkey /home/lengshan/ca.key -out /home/lengshan/ca.crt #为我们的证书建立第一个序列号,一般都是用4个字符,这个不影响之后的证书颁发等操作 echo FACE > /home/lengshan/serial #建立ca的证书库,不影响后面的操作,默认配置文件里也有存储的地方 touch /home/lengshan/index.txt #建立证书回收列表保存失效的证书

用Keytool和OpenSSL生成和签发数字证书

4.2.1 建立工作目录 demoCA 4.2.2 生成CA私钥以及自签名根证书 4.2.2.1 生成CA私钥 openssl genrsa -out demoCA\ca-key.pem 1024 4.2.2.2 生成待签名证书 openssl req -new -out demoCA\ca-req.csr -key demoCA\ca-key.pem 4.2.2.3 用CA私钥进行自签名 openssl x509 -req -in demoCA\ca-req.csr -out ca\ca-cert.pem -signkey demoCA\ca-key.pem -days 365 4.3 设置Tomcat 4.x 在本文中用符号"%JDK_HOME%"来表示JDK的安装位置,用符号"%TCAT_HOME%" 表示Tomcat的安装位置。 4.3.1建立工作目录 mkdir server 4.3.2 生成server端证书 4.3.2.1 生成KeyPair %JDK_HOME%\bin\keytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore server\server_keystore 4.3.2.2 生成待签名证书 %JDK_HOME%\bin\keytool -certreq -alias tomcat_server -sigalg MD5withRSA -file server\server.csr -keypass 123456 -keystore server\server_keystore -storepass changeit 4.3.2.3 用CA私钥进行签名

用OpenSSL命令行生成证书文件

用OpenSSL命令行生成证书文件证书文件生成 也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天。除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以......),还需生成必要的证书和私钥文件使双方能够成功验证对方。 找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl(yawl@https://www.360docs.net/doc/2018246645.html,)写的文章,难得的汉字(呵呵)。里面有生成证书部分,说到生成了Certificate Signing Request (CSR)文件后,就有点不太清楚了。后面生成自签字证书在很多地方都可以找到的,签名这部分,yawl说mod_ssl有比较好的脚本,但是笔者一时找不到,就自己用openssl的ca命令来完成了,也不是很麻烦。 说说本人的操作环境:无盘工作站(有权限问题使用起来不太方便),操作目录是openssl/bin(没办法改不了环境变量,如果你可以改的话,就不用在这个目录下工作了),为了方便本人把apps下的https://www.360docs.net/doc/2018246645.html,f 也复制到了这个目录下来。文件名都是以本人使用的来说了: 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施! 去除key文件口令的命令: openssl rsa -in server.key -out server.key 2.生成Certificate Signing Request(CSR) openssl req -new -key server.key -out server.csr -config https://www.360docs.net/doc/2018246645.html,f 生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可. 3.对客户端也作同样的命令生成key及csr文件: openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr -config https://www.360docs.net/doc/2018246645.html,f 4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢. openssl req -new -x509 -keyout ca.key -out ca.crt -config https://www.360docs.net/doc/2018246645.html,f

openssl,CA证书生成命令集合

多级证书 平时我们自己签发CA证书再签发服务器证书的场景其实都非常简单。浏览器把自签CA导入后,就可以信任由这个CA直接签发的服务器证书。 但是实际上网站使用的证书肯定都不是由根CA直接签发的,比如 淘宝登陆服务器使用的证书。 我之前是自己写了脚本由自签CA直接签发服务器证书,为了真清楚的理解一下证书链的作用就直接使用openssl先签发2层的子CA,再由子CA去签发服务器证书。 手动签发证书的脚本如下: 生成自签CA # cat makerootca.sh #!/bin/bash DIR=/root/ssl.test2 mkdir -p $DIR/demoCA/{private,newcerts} touch $DIR/demoCA/index.txt echo 01 > $DIR/demoCA/serial opensslgenrsa -des3 -out $DIR/demoCA/private/cakey.pem 2048

opensslreq -new -x509 -days 3650 -key $DIR/demoCA/private/cakey.pem -out $DIR/demoCA/careq.pem 签发二级CA的脚本 https://www.360docs.net/doc/2018246645.html,f/root/ssl.test2 # cat no2domain.sh #!/bin/bash [ $# -ne 1 ] && echo "$0 NAME" && exit NAME=$1 DIR=/root/ssl.test2/autoget mkdir -p $DIR opensslgenrsa -des3 -out $DIR/$NAME.key 2048 openssl x509 -in $DIR/../demoCA/careq.pem -noout -text opensslrsa -in $DIR/$NAME.key -out $DIR/$NAME.key opensslreq -new -days 3650 -key $DIR/$NAME.key -out $DIR/$NAME.csr opensslca -extensions v3_ca -in $DIR/$NAME.csr -config $DIR/../https://www.360docs.net/doc/2018246645.html,f -days 3000 -out $DIR/$NAME.crt -cert $DIR/../demoCA/careq.pem -keyfile $DIR/../demoCA/private/cakey.pem 签发三级CA的脚本 # cat no3domain.sh #!/bin/bash #[ $# -ne 1 ] && echo "$0 NAME" && exit NAME=calv3 DIR=/root/ssl.test2/autoget opensslgenrsa -des3 -out $DIR/$NAME.key 2048

Linux下用Openssl生成证书

用openssl签发ssl x.509证书 Linux及Openssl版本: 首先在/home目录下建立ssl目录: cd /home mkdir ssl cd ssl 建立几个要用到的目录: mkdir private certs newcerts crl 其中private主要用来存放私钥的. certs用于存入签出的证书 cp /usr/share/ssl/https://www.360docs.net/doc/2018246645.html,f . 将配置文件复制到当前目录 构建相关文件: echo 构建索引文件index.txt echo 0>index.txt echo 构建序列号文件serial echo 01>serial 设定环境变量 export OPENSSL_CONF="/home/ssl/https://www.360docs.net/doc/2018246645.html,f" 更改https://www.360docs.net/doc/2018246645.html,f中的配置:

dir = /home/ssl 产生一个随机数文件: openssl rand -out /home/ssl/private/.rand 1000下面才开始建立根证书: 1.制作私钥: openssl genrsa -des3 -out private/ca.key.pem 2048 这来细细讲一下这条命令:openssl指进入openssl环境,genrsa 是openssl中的一个小应用程序,用来产生rsa私钥。-des3是指将产生的私钥用triple DES进行加密。这是个可选项,还有-des -idea都是对称加密算法,随你自己选择. -out就是指定输出了,如果不加这个选项的话,就会将输出发到标准输出中.2048指私钥的长度,单们是bit,默认是512 输入这条命令后,产生私钥,提示你设定密码. 2.填写证书申请表: openssl req -new -key private/ca.key.pem -out ca.req.pem 提示你私钥的密码,一步一步输入就行了。 因为证书中要有公钥,和个人信息,所以我们指定私钥,程序推导出公钥,供申请表用。 3.自己签定根签书: openssl x509 -req -days 1000 -sha1 -extensions v3_ca -signkey private/ca.key.pem -in ca.req.pem -out certs/ca.crt.pem

嵌入式设备CA证书的生成步骤

1、环境准备 1.1 向设备添加动态库文件(用于支持openssl生成证书请求文件): libssl.so.6、libgssapi_krb5.so.2、libkrb5.so.3、libcom_err.so.2、 libk5crypto.so.3、libresolv.so.2、libkrb5support.so.0、 1.2 创建所需结点: mknod /dev/random c 1 8 mknod /dev/urandom c 1 9 1.3 放置生成证书的工具: 在设备上根目录新建文件夹/path/to : mkdir -p /path/to 将openssl-bin.tar.bz2 解压到设备/path/to目录下,并给/path/to/openssl/bin目录下的文件赋予可执行权限。 2、制作需CA(Certificate Authority)签署证书 2.1、生成私钥 进入/path/to/openssl/bin目录下,执行 方式一:./openssl genrsa -des3 1024 >server.key 注:采用DES3加密新产生的私钥server.key文件,每次要使用这个私钥时都要用输入密码。如果您的电子证书是用在apache等服务器中,您每次启动服务器时都要输入密码一次。 方式二:./openssl genrsa 1024 >server.key 注:采用128位rsa算法生成密钥server.key文件,这种方法产生的证书在apache 等服务器中启动服务器时不会要求输入密码,同时也不会把私钥加密。 我们采用方式二生成私钥。 2.2 生成证书请求文件(Certificate Signing Request) ./openssl req -new -key server.key > server.csr 注:这是用步骤1的密钥生成证书请求文件server.csr, 这一步输入内容和创建自签名证书的内容类似,按要求输入就可以了。 2.3 签署生成CA证书 您只要把server.csr这个档案给第三方CA(Certificate Authority)机构签署生成证书就可以了。 2.4 自己做CA证书,生成证书ca.crt和私钥ca.key 2.4.1 在当前目录下创建如下文件和文件夹: 生成证书时,不仅需要ca.key和ca.crt,还需要读配置文件/path/to/openssl/ssl/openssl.conf,所以必须要按照/usr/share/ssl/https://www.360docs.net/doc/2018246645.html,f罩的设置,建 立起各层目录 mkdir demoCA mkdir demoCA/newcerts mkdir demoCA/private cat /dev/null >demoCA/index.txt (确保创建的

Linux下OpenSSL客户端中使用req命令来生成证书的教程

Linux下OpenSSL客户端中使用req命令来生成证书的教程作者:Gordon0918 字体:[增加减小] 来源:开源中文社区时间:04-22 11:56:58?我要评论这篇文章主要介绍了Linux下OpenSSL客户端中使用req命令来生成证书的教程,详细讲解了自动生成密钥和生成自签名证书的方法,需要的朋友可以参考下 openssl req 用于生成证书请求,以让第三方权威机构CA来签发,生成我们需要的证书。req 命令也可以调用x509命令,以进行格式转换及显示证书文件中的text,modulus等信息。如果你还没有密钥对,req命令可以一统帮你生成密钥对和证书请求,也可以指定是否对私钥文件进行加密。 1、密钥、证书请求、证书概要说明 在证书申请签发过程中,客户端涉及到密钥、证书请求、证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水。我们以申请证书的流程说明三者的关系。客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步:生成客户端的密钥,即客户端的公私钥对,且要保证私钥只有客户端自己拥有。 第二步:以客户端的密钥和客户端自身的信息(国家、机构、域名、邮箱等)为输入,生成证书请求文件。其中客户端的公钥和客户端信息是明文保存在证书请求文件中的,而客户端私钥的作用是对客户端公钥及客户端信息做签名,自身是不包含在证书请求中的。然后把证书请求文件发送给CA机构。 第三步:CA机构接收到客户端的证书请求文件后,首先校验其签名,然后审核客户端的信息,最后CA机构使用自己的私钥为证书请求文件签名,生成证书文件,下发给客户端。此证书就是客户端的身份证,来表明用户的身份。 至此客户端申请证书流程结束,其中涉及到证书签发机构CA,CA是被绝对信任的机构。如果把客户端证书比作用户身份证,那么CA就是颁发身份证的机构,我们以https为例说明证书的用处。 为了数据传输安全,越来越多的网站启用https。在https握手阶段,服务器首先把自己的证书发送给用户(浏览器),浏览器查看证书中的发证机构,然后在机器内置的证书中(在PC或者手机上,内置了世界上著名的CA机构的证书)查找对应CA证书,然后使用内置的证书公钥校验服

openssl+keytool+tomcat自签名证书

利用OpenSSL 和keytool 实现tomcat下自签名证书 前言 项目需要在tomcat中配置ssl认证,学习了一下怎么配置,由于对pki认证体系、证书的制作和发放过程不了解,整个配置过程坎坷,所以配置成功后立即记录下来希望以后遇到类似的情况有所参考。 本文讲述了如何使用openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。 本文用到的工具:OpenSSL.rar(点击下载) keytool(JDK中自带的工具) (这里下载的OpenSSL.rar,其中的https://www.360docs.net/doc/2018246645.html,f并没有在ssl文件夹中,需新建ssl文件夹并把https://www.360docs.net/doc/2018246645.html,f 放入其中)。 使用openssl 生成根证书生成 1.解压openssl.rar 到c:\openssl 下,在命令行中将目录转到 c:\openssl\bin 2. 生成根证书的私钥,生成文件cakey.pem openssl genrsa -out cakey.pem 1024 3.根据私钥生成证书申请,生成文件careq.csr openssl req -new -out careq.csr -key cakey.pem 在生成申请时需要填入相关的信息,根据部署的地点不同做相应的改变

4. 利用根证书申请生成自签名根证书,生成文件cacert.pem openssl x509 -req -in careq.csr -out cacert.pem -signkey cakey.pem -days 3650 至此根证书制作完毕,为了方便起见,在openssl.rar\bin\ 中已经包含生成根证书.bat 点击执行即可。 生成tomcat证书库文件和证书申请 1.生成证书库文件tomcatkey.jks keytool -genkey -alias tomcat_server -keyalg RSA -keysize 1024 -validity "1825" -keypass 123456 -keystore tomcatkey.jks -storepass 123456 红色部分可以根据具体的部署情况做相应的改变 -alias 证书库文件中私钥的别名 -keypass 证书库文件私钥的密码 -keystore 证书库文件的存储路径 -storepass 证书库文件的密码 执行后需要填写相应的信息

openssl生成证书及吊销列表

openssl生成证书及吊销列表 一,先来讲讲基本概念。 证书分类: 按类型可以分为CA证书和用户用户证书,我们我说的root也是特殊的CA证书。 用户证书又可以根据用途分类,放在服务器端的称为服务器证书,放在客户端一般称为客户端证书(这种说法不是很准确,只是一种理解。实际应该是在对客户端认证时才会用到客户端证书且root、ca证书都可以放在客户端),记住,这两种证书都应为用户证书。 一般可以理解为证书由key和证书(没有key的文件也称为证书)组成,谁拥有这两个东西才真正拥有这个证书。好比锁是有钥匙和锁头组成的,你得两都有。你只有锁头锁住东西,却没有钥匙打开,也没什么用。 如果你对证书不了解,那一定要知道证书这三点作用(纯个人认为比较重要三点): 1,签名:通过签名技术可以保证证书拥有者的唯一性,而且所有信息没有被篡改。想了解数字签名的自己百度一下。 2,提供公钥:通过签名技术知道证书拥有者是A,且所有信息都是A,就可以拿到A的公钥算法及公钥。所以有些人理解为证书就是一个公钥(个人认为这种理解与实际偏差较大)。 3,颁发者:找到颁发者很重要,每个证书都有一个颁发者。这个在证书认证时用得到。 对于用户(人)来说还是通过证书名称来区分证书,下面讲解几种常见的证书。 a).cert或.crt文件:这种证书倒是可以理解为公钥证书,因为它最主要的作用就是来提供公钥的,只是一种理解,签名认证这些作用一样不会少。这种文件不含有key,就好像一个打开的锁头,可以发给任何人。所以拥有.cer或.crt文件的不是真正的拥有者,因为你可以用证书里的公钥加密,但并没有私钥解密。b).pfx文件:这种证书文件可以理解为.cer文件与key结合体,即拥有.pfx证书相当同时拥有公钥与私钥。即可以加密也可以解密。 c).key文件:就是钥匙啦。锁头可以给任何人,但是钥匙只能自己保留,所以这玩意一定要保存好。 d).p7b文件:为证书链文件,也不含私钥。证书链即证书的拥有者、颁发者、颁发者的颁发者、依次类推的证书合成一个文件。 以上对证书概念基础的了解,有基础的可以不用看。实际证书分类根据编码方式来区分的,只是为了方便理解才这么分的。当我们需要向对方发送加密数据时,我们只需要对方的cer或crt文件就可以了。而需要对方向自己发送加密数据时,自己得拥有key,并且对方要有自己公钥(从cer文件获得)。 二、环境搭建 安装openssl这个就不讲了,现在很多linux版本都默认安装了。先来看下配置文件中一段。 默认配置文件/usr/local/openssl/ssl/https://www.360docs.net/doc/2018246645.html,f或者/etc/pki/tls/https://www.360docs.net/doc/2018246645.html,f。 dir = ./demoCA # 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. #unique_subject = no # Set to 'no' to allowcreation of #several ctificates with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # mustbe commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL

相关文档
最新文档