




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.2.1 建立工作目录demoCA4.2.2 生成CA私钥以及自签名根证书 生成CA私钥openssl genrsa -out demoCAca-key.pem 10 生成待签名证书openssl req -new -out demoCAca-req.csr -key demoCAca-key.pem 用CA私钥进行自签名openssl x509 -req -in demoCAca-req.csr -out caca-cert.pem -signkey demoCAca-key.pem -days 3654.3 设置Tomcat 4.x在本文中用符号%JDK_HOME%来表示JDK的安装位置,用符号%TCAT_HOME% 表示Tomcat的安装位置。4.3.1建立工作目录mkdir server4.3.2 生成server端证书 生成KeyPair%JDK_HOME%binkeytool -genkey -alias tomcat_server -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore serverserver_keystore 生成待签名证书%JDK_HOME%binkeytool -certreq -alias tomcat_server -sigalg MD5withRSA -file serverserver.csr -keypass 123456 -keystore serverserver_keystore -storepass changeit 用CA私钥进行签名openssl x509 -req -in serverserver.csr -out serverserver-cert.pem -CA demoCAca-cert.pem -CAkey demoCAca-key.pem -CAserial demoCA/ca-cert.srl -CAcreateserial -days 36 导入信任的CA根证书到JSSE的默认位置(%JDK_ROOT %/jre/security/cacerts)%JDK_HOME%bin keytool -import -v -trustcacerts -storepass 123456 -alias my_ca_root -file demoCAca-cert.pem -keystore %JDK_HOME%jrelibsecuritycacerts 把CA签名后的server端证书导入keystore%JDK_HOME%binkeytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file serverserver-cert.pem -keystore serverserver_keystore%JDK_HOME%binkeytool -import -v -alias tomcat_server -file serverserver-cert.pem -storepass 123456 -keystore server_keystore 查看server端证书keytool -list -keystore %JDK_HOME%jrelibsecuritycacertskeytool -list -keystore serverserver_keystore4.3.3 修改server.xml使Tomcat支持SSL首先找到以下内容,去掉对其的注释。然后参照红色部分修改。如果配置Tomcat不验证客户身份,可以设置clientAuth=false。然后把文件serverserver_keystore复制到目录%TCAT_HOME%conf下。4.4 在IE中安装个人证书4.4.1 建立工作目录mkdir client4.4.2 生成client私钥并用CA私钥签名 生成client私钥openssl genrsa -out clientclient-key.pem 10 生成待签名证书openssl req -new -out clientclient-req.csr -key clientclient-key.pem 用CA私钥进行签名openssl x509 -req -in clientclient-req.csr -out clientclient.crt -signkey clientclient-key.pem-CA caca-cert.pem -CAkey caca-key.pem -CAcreateserial -days 36 生成client端的个人证书因为JSSE1.0.2没有完全实现了对PKCS#12格式文件的操作(只能读取,不能输出),所以在这里需要用openssl制作client端的个人证书(包含私钥)。openssl pkcs12 -export -clcerts -in clientclient.crt -inkey clientclient-key.pem -out clientclient.p 安装信任的根证书#把caca-key.pem改名为caca-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.p124.4.3 安装个人证书把client.p12导入到client端的IE中作为个人证书,导入过程同。4.5 用IE浏览器使用SSL协议访问Tomcat4.5.1 启动Tomcat 4.x执行%TCAT_HOME%binstartup.bat启动Tomcat 4.x4.5.2 用IE访问Tomcat 4.x在IE浏览器的地址栏中输入https:/localhost:8443,如果前面的操作都正确的话,应该可以看到Tomcat的欢迎页面。同时状态栏上的小锁处于闭合状态,表示您已经成功地与服务器建立了要求客户端验证的SSL安全连接。/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.jksP12格式证书导入:keytool无法直接导入PKCS12文件。第一种方法是使用IE将pfx证书导入,再导出为cert格式文件。使用上面介绍的方法将其导入到密钥仓库中。这样的话仓库里面只包含了证书信息,没有私钥内容。第二种方法是将pfx文件导入到IE浏览器中,再导出为pfx文件。 新生成的pfx不能被导入到keystore中,报错:keytool错误: java.lang.Exception: 所输入的不是一个 X.509 认证。新生成的pfx文件可以被当作keystore使用。但会报个错误as unknown attr.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.pem2)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遇到是否信任该证书提示时,输入ykeytool -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对于J2EEAppServer是很有用的,它们就是用keystore存储证书链的。keystore的作用类似于windows存放证书的方式,不过跨平台了,_下面用Keytool生成CSR(Certificate Signing Request),并用OpenSSL生成CA签名的证书。1. 准备1) 在bin目录下新建目录 demoCA、demoCA/certs、demoCA/certs 、 demoCA/newcerts2) 在demoCA建立一个空文件 index.txt3) 在demoCA建立一个文本文件 serial, 没有扩展名,内容是一个合法的16进制数字,例如 00004) 配置环境变量PATH,加入%JAVA_HOME%/bin,本文用的JavaSDK1.62. 生成CA的自签名证书openssl req -new -x509 -keyout ca.key -out ca.crt -config f3. 生成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_keystore3) 用CA私钥进行签名,也可以到权威机构申请CA签名。 openssl ca -in tomcat_server.csr -out tomcat_server.crt -cert ca.crt -keyfile ca.key -notext -config f 其中-notext表示不要把证书文件的明文内容输出到文件中去,否则在后面用keytool导入到keystore时会出错。4) 导入信任的CA根证书到keystore keytool -import -v -trustcacerts -alias my_ca_root -file ca.crt -storepass 123456 -keystore server_keystore5) 把CA签名后的server端证书导入keystorekeytool -import -v -alias tomcat_server -file tomcat_server.crt -storepass 123456 -keystore server_keystore6) 查看server端证书 keytool -list -v -keystore server_keystore可以看到tomcat_server的证书链长度是24. 生成client端证书1) 生成客户端CSR openssl genrsa -des3 -out tomcat_client.key 1024openssl req -new -key tomcat_client.key -out tomcat_client.csr -config f2) 用CA私钥进行签名,也可以到权威机构申请CA签名openssl ca -in tomcat_client.csr -out tomcat_client.crt -cert ca.crt -keyfile ca.key -notext -config f3) 生成PKCS12格式证书openssl pkcs12 -export -inkey tomcat_client.key -in tomcat_client.crt -out tomcat_client.p124) 使用Keytool列出pkcs12证书的内容: keytool -rfc -list -keystore tomcat_client.p12 -storetype pkcs12二)openssl生成私钥文件(.key)和签名请求文件(.csr),以及签发数字证书操作目录是openssl/bin(没办法改不了环境变量,如果你可以改的话,就不用在这个目录下工作了),为了方便本人把apps下的f也复制到了这个目录下来。文件名都是以本人使用的来说了:1.首先要生成服务器端的私钥(key文件):openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!去除key文件口令的命令:openssl rsa -in server.key -out server.key2.openssl req -new -key server.key -out server.csr -config f生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.3.对客户端也作同样的命令生成key及csr文件:openssl genrsa -des3 -out client.key 1024openssl req -new -key client.key -out client.csr -config f4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.openssl req -new -x509 -keyout ca.key -out ca.crt -config f5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config fOpenssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config f现在我们所需的全部文件便生成了.另:client使用的文件有:ca.crt,client.crt,client.keyserver使用的文件有:ca.crt,server.crt,server.key.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)合并证书文件(crt)和私钥文件(key):cat client.crt client.key client.pemcat server.crt server.key server.pemJDK中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 12345678keytool -list -v -keystore d2aapplet.keystore -storepass 12345678 -storetype IAIKKeystore2.将证书导出到证书文件例如:keytool -export -keystore m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 周口工业喷淋塔施工方案
- 龙口建筑隔墙板施工方案
- 非标业务化解方案范本
- 2025年中国地质调查局廊坊自然资源综合调查中心公开招聘32人考前自测高频考点模拟试题及答案详解(全优)
- 2025年潍坊寒亭区(经济区)公开招聘中小学教师(11名)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025湖南怀化市会同县公开招聘事业单位工作人员7人考前自测高频考点模拟试题有完整答案详解
- 青海企业绩效咨询方案
- 20周年恋爱活动方案策划
- 2025江苏苏州高新区狮山横塘街道招聘15人模拟试卷带答案详解
- 运动会活动方案及预算策划
- 2024年高级执法资格考试题及解析
- 新学期新起点励志奋斗青春初三毕业班开学第一课主题班会课件
- 分包单位与班组签订合同
- 盐酸右美托咪定鼻喷雾剂-临床用药解读
- 危险货物装载与卸载操作规程
- 《映山红》PPT课件(安徽省市级优课)-五年级音乐课件
- 林则徐课件完整版
- 投资学英文版课件Ch 3 Securities markets
- 氟喹诺酮类药物残留的检测课件
- 2021Z世代职场现状与趋势调研报告
- 全国编辑记者资格证考试复习资料
评论
0/150
提交评论