openssl+keytool+tomcat自签名证书

openssl+keytool+tomcat自签名证书
openssl+keytool+tomcat自签名证书

利用OpenSSL 和keytool 实现tomcat下自签名证书

前言

项目需要在tomcat中配置ssl认证,学习了一下怎么配置,由于对pki认证体系、证书的制作和发放过程不了解,整个配置过程坎坷,所以配置成功后立即记录下来希望以后遇到类似的情况有所参考。

本文讲述了如何使用openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。

本文用到的工具:OpenSSL.rar(点击下载) keytool(JDK中自带的工具)

(这里下载的OpenSSL.rar,其中的https://www.360docs.net/doc/7118352542.html,f并没有在ssl文件夹中,需新建ssl文件夹并把https://www.360docs.net/doc/7118352542.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 证书库文件的密码

执行后需要填写相应的信息

名称和姓氏一定要填入服务器的域名或ip地址,否则部署之后会提示证书地址不匹配的错误剩余的部分必须和根证书填写一致。(不知道根证书的内容,可以双击根证书查看其内容)

2.根据证书库文件生成证书申请,生成文件certreq.cer

keytool -certreq -alias tomcat_server -sigalg "MD5withRSA" -file certreq.cer -keypass 123456 -keystore tomcatkey.jks -storepass 123456

制作服务器证书并导入证书库

1.用根证书签名证书申请生成根证书,生成文件tomcatcert.pem

openssl ca -keyfile cakey.pem -cert cacert.pem -in certreq.cer -out tomcatcert.pem -config https://www.360docs.net/doc/7118352542.html,f -policy policy_anything

至此证书可能会失败,其原因是openssl证书数据库里已经存储了这个证

书解决办法是在目录

openssl\democa\index.txt 把里面的内容全部删除(当然这个做法带来的危险是已有的证书也会删除,如果有耐心可以找到那条记录把他删除)

重新执行上面的那条语句就可以了

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

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

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

3.将转换成功的cer文件导入证书库文件中

首先导入根证书

keytool -keystore tomcatkey.jks -import -alias RootCA -file cacert.cer

然后再导入服务器证书

keytool -keystore tomcatkey.jks -import -alias tomcat_server -file tomcatcert.cer

Tomcat配置:

1、s erver.xml

找到%tomcat_home%下conf文件夹中server.xml,找到(默认被注释掉),去掉注释,修改如下:

其中,clientAuth表示客户认证,由于双向认证一般在B2B中,这里只需要服务器认证即可。keystoreFile表示证书地址(相对地址或绝对地址皆可),keystorePass与之前设置的密码一致。

2、w eb.xml

同样在conf中找到web.xml,在最后加上:

表明对所有请求都采用SSL协议,即写上这段代码以后,tomcat可以自动实现http到https的转换,而无需特意输入https://localhost:8443/。

IE浏览器配置(IE7):

第一次打开时,出现,这时只要单击证书错误,选择查看证书,点击安装证书,下一步,选择”将所有的证书放入下列存储区”,单击浏览,选择”受信任的根证书颁发机构”,再下一步,完成即可,以后在访问该页面时都不会提示了!

(在做的过程中,并没有出现提示安装证书,我通过浏览器-Internet选项--内容--证书—受信任的根证书颁发机构—导入,选中之前做的cacert.cer和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 文件(直接拷贝过去就行了)

一、数字签名说明

附件2 中债综合业务平台客户端数字签名说明 可信代码数字签名证书可以保证您的软件是完整的、安全的(即可信任的)。为了保障您所下载的中债综合业务平台客户端安装程序未受病毒或木马的侵害,我公司已对安装程序及运行程序启用数字签名证书,并在版本安装和使用时进行明确的提示。(以下以“中债综合业务平台网上客户端”为例说明)。 一、数字签名说明 1.在已下载的安装程序上点击右键,选择“属性”;

2.选择“数字签名”标签,可看到该文件由中央国债登记结算有限责任签名。

3.点击“详细信息”,如软件未被改动,则证书的状态为“此数字签名正常”。 4.点击“查看证书”,可看到证书相关信息。

至此,可确认您下载的安装程序是可信任的,请放心进行安装和使用。 5.如果文件被非法篡改,分为两种情况 第一种:如果是WindowsXP系统,则在文件属性里,“数字签名”一栏仍显示该文件有签名,但详细信息里会提示“该数 字签名无效”,查看证书里会提示“没有验证对象的数字签名”。

第二种:如果是Windows7以上的系统,则在文件属性里看不到“数字签名”一栏. 一旦遇到以上这两种情况,请立即删除安装程序并重新下载,然后重复以上的验证步骤。 二、安装过程及客户端打开过程操作提示 1.Windows系统弹出的用户帐户控制窗口。 在Windows7及以上版本的系统中,如果将控制面板中的“用户帐户控制设置”设定为“始终通知”或“仅在程序尝试对我的计算机进行更改时通知我”,则会在运行安装程序时,弹出操作系统UAC提示对话框,此时点击“是”即可

继续进行安装操作。 2.打开客户端时可能遇到的安全警告。 在启动中债综合业务平台客户端时,如果用户的组策略—用户配置—管理模板—Windows组件—附件管理器中的高风险文件类型的包含列表是开启状态,会弹出安全警告对话框,此时点击“运行”即可继续启动打开客户端程序。

数字证书和数字签名的关系

数字证书和数字签名的关系 什么是数字证书? 由于Internet网电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险. 为了保证互联网上电子交易及支付的安全性,保密性等,防范交易及支付过程中的欺诈行为,必须在网上建立一种信任机制。这就要求参加电子商务的买方和卖方都必须拥有合法的身份,并且在网上能够有效无误的被进行验证。数字证书是一种权威性的电子文档。它提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构----CA证书授权(Certificate Authority)中心发行的,人们可以在互联网交往中用它来识别对方的身份。当然在数字证书认证的过程中,证书认证中心(CA)作为权威的、公正的、可信赖的第三方,其作用是至关重要的。 数字证书也必须具有唯一性和可靠性。为了达到这一目的,需要采用很多技术来实现。通常,数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所有的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。公开密钥技术解决了密钥发布的管理问题,用户可以公开其公开密钥,而保留其私有密钥。 数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度。可以从证书发行机构获得您自己的数字证书。 目前的数字证书类型主要包括:个人数字证书、单位数字证书、单位员工数字证书、服务器证书、VPN证书、W AP证书、代码签名证书和表单签名证书。 随着Internet的普及、各种电子商务活动和电子政务活动的飞速发展,数字证书开始广泛地应用到各个领域之中,目前主要包括:发送安全电子邮件、访问安全站点、网上招标投标、网上签约、网上订购、安全网上公文传送、网上缴费、网上缴税、网上炒股、网上购物和网上报关等。 什么是数字签名?数字签名与电子签名是不是一回事? 电子签名和数字签名的内涵并不一样,数字签名是电子签名技术中的一种,不过两者的关系也很密切,目前电子签名法中提到的签名,一般指的就是"数字签名"。

自签名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/7118352542.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/7118352542.html,(邮箱名可以不一样,可以区别不同的证书) 其中有一个A challenge password,不知道做什么用,填111111 An optional company name : milano -config https://www.360docs.net/doc/7118352542.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/7118352542.html,f 4.openssl genrsa -des3 -out ca.key 1024 [这步是自己加上去的,先生成ca的私钥]

一类无证书签名方案的构造方法

第32卷 第5期2009年5月 计 算 机 学 报 CH INESE JOURNA L OF COMPU TERS Vol.32No.5 May 2009 收稿日期:2008201220;最终修改稿收到日期:2008212222.本课题得到国家自然科学基金(60673070)和江苏省自然基金(B K2006217)资助.张 磊,男,1982年生,博士研究生,主要研究方向为密码学与信息安全.张福泰,男,1965年生,教授,博士生导师,研究领域包括信息安全、网络安全、密码学.E 2mail:zhan gfutai@https://www.360docs.net/doc/7118352542.html,. 一类无证书签名方案的构造方法 张 磊 张福泰 (南京师范大学数学与计算机科学学院 南京 210097) 摘 要 无证书密码体制(CL 2PKC)是一类新型公钥密码体制.它保持了基于身份的密码体制(ID 2PKC)不需要使用公钥证书的优点,又较好地解决了基于身份的公钥体制所固有的密钥托管问题.对无证书体制下安全高效的签名方案的设计方法的研究是受到高度关注的研究课题.文中给出了一类无证书签名方案的构造方法,并在一个很强的安全模型下对用该方法所构造的方案的安全性进行了证明.文中对新构造的方案与已有的一些同类方案的性能进行了比较.结果显示新方案在整体性能上有一定的优势. 关键词 无证书密码系统;计算Diffie 2Hellman 问题;双线性对;无证书签名;随机预言模型中图法分类号TP 309 DOI 号:10.3724/SP.J.1016.2009.00940 A Method to Construct a Class of Certificateless Signature Schemes ZH ANG Lei ZH ANG Fu 2Tai (Colleg e of Mathematics and Comp uter Science,N anjing N ormal University ,N anjing 210097) Abstr act Certificateless public key cryptogr aphy (CL 2PKC)is a new paradigm in public key cryptography.It effectively solves the inherent key escr ow problem in identity based public key cryptography (ID 2PKC)while keeps its certificate free property.Designing efficient and secure signature schemes in cer tificateless public key setting is an interesting research topic that attracts the attentions of many resear cher s.T his paper proposes a new method to construct a class of cer 2tificateless signature schemes.The schemes constructed using the new method can be proven se 2cur e in a very str ong security model.The overall performances of the authors .newly constructed schemes are better than that of the other certificateless signature schemes available in the literature.Keywor ds certificateless public key cryptography;computational Diffie 2H ellman pr oblem; bilinear pairing;certificateless signature;random oracle model 1 引 言 在基于证书的传统公钥密码系统下,为了保证系统的安全性,用户的公钥由CA 颁发的证书进行认证.然而在实际应用中证书的产生、管理、传输、验证等过程不仅复杂而且代价很高.为了简化证书管理过程,降低运行代价,Shamir [1]在1984年首次 提出了基于身份的密码系统.在基于身份的密码系统中不再使用证书来认证用户的公钥,因为用户的公钥就是能唯一代表他身份的一个公开信息,比如说他的电话号码或者email 地址.在该系统中,用户的私钥需要由一个可信中心(PKG)产生.正是由于这一点,基于身份的密码系统有一个与生俱来的缺陷,那就是密钥托管问题,即PKG 知道任何用户的私钥.为了解决基于身份的密码系统中的密钥托管

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,

IOS开发中证书、签名、私钥、描述文件概述

IOS证书/私钥/代码签名/描述文件 SURFSKY-2012-10 1.相关资源 (1)钥匙串程序(常用工具->钥匙串),用于创建证书请求、安装证书、导出私钥等 (2)IOS开发中心:https://d evel oper.appl https://www.360docs.net/doc/7118352542.html,/d evcenter/ios/ind ex.action (3)IOS描述门户(IOS provisioning Portal),在此配置证书、描述文件、推送服务等:https://d eveloper.appl https://www.360docs.net/doc/7118352542.html,/ios/manage/overview/ind ex.action, (4)IOS程序发布:http://itunesconnect.appl https://www.360docs.net/doc/7118352542.html,/ 2.证书、签名、私钥、描述文件的一句话描述 (1)证书分两种:开发者证书、发布者证书。前者开发时使用,后者发布使用 (2)模拟器调试无需代码签名;真机调试需开发者证书代码签名;发布时需发布证书签名 (3)代码签名需要:证书+私钥,缺一不可,详见4 (4)真机调试时要求在设备上安装描述文件(provision profile),该文件包含信息:调试者证书,授权调试设备清单,应用ID。一个应用对应一个描述文件。 (5)一般情况下,xcod e需要做以下代码签名配置: 3. XCODE代码签名简要步骤 (1)用钥匙串程序创建证书请求:证书请求文件(*.certSigningRequest),私钥,公钥。 (2)将证书请求文件发送给appl e,后者将创建一个证书文件(*.cer)给你。 (3)xcod e将使用证书文件和对应的私钥给代码签名。 注:私钥可导出为p12文件拷贝他人使用,详见下节。

数字签名及安全电子邮件详细步骤

数字签名及安全电子邮件 一、背景知识 使用个人证书,在电子邮件中至少有以下功能。 保密性:你可以使用收件人的数字证书对电子邮件进行加密。这样,只有收件人的私钥才能解密这封邮件,即使第三方截获邮件,由于没有收件人的私钥,也无法阅读该邮件。当然,要发送加密电子邮件,必须先拥有对方的数字证书。 认证身份:你可以使用你本人的数字证书对电子邮件进行数字签名,这样,收件人通过验证签名就可以确定你的身份,而不是他人冒充的。 完整性:如果验证数字签名有效,收件人不仅可以认证你的身份,还可以确信收到的邮件在传递的过程中没有被篡改。 不可否认性:数字签名要使用你本人数字证书中的私钥,而私钥仅你个人所有,所以,你不能对发送过的签名邮件进行否认。 1、电子邮件的重要性 由于越来越多的人通过电子邮件发送机密信息,因此确保电子邮件中发送的文档不是伪造的变得日趋重要。同时保证所发送的邮件不被除收件人以外的其他人截取和偷阅也同样重要。 通过使用 Outlook Express 和 Foxmail,可以在电子事务中证明身份,就象兑付支票时要出示有效证件一样。也可以使用数字证书来加密邮件以保护邮件的保密性。数字证书结合了 S/MIME 规范来确保电子邮件的安全。 2、对电子邮件进行数字签名 对电子邮件进行数字签名,能够确保电子邮件中发送的文档不是伪造的,即收件人能够确信该邮件来自于其声称的发件人,同时邮件从发件人的机器传达到接收人的机器没有经过任何改动。 当发件人在待发邮件中添加数字签名时,发件人就在邮件中加入了数字签名和自己的数字证书。邮件的接收方接收到该邮件后,首先判断发件人的证书是否有效(该证书是否是可信任的CA签发的,该证书是否在有效期内,该证书是否已经被撤销),如果证书有效,从发件人的证书中提取公钥信息,来验证邮件的数字签名是否有效。 3、对电子邮件进行加密 对电子邮件进行加密(使用接收人的数字证书中的公钥进行加密)可以保证所发送的邮件不被除收件人以外的其他人截取和偷阅。 当发件人对邮件进行加密时,使用接收人的数字证书中的公钥对邮件进行加密。邮件的接收方接收到该邮件后,使用自己的私钥对邮件进行解密,可以得到邮件的明文。因为使用公钥加密的数据,只有对应的私钥才可以解密,而对一封加密邮件来说,只有接收人才具有对应的私钥,也就是只有接收人才可以对邮件解密得到邮件的明文。其他任何人截获了该邮件都是无法识别的乱码。有效的保证了邮件内容的保密性。 4、电子邮件证书使用的简易性 如果接收到有问题的安全邮件,例如邮件已被篡改或发件人的数字证书已过期,则在被允许阅读邮件内容前,会看到一条安全警告,它详细说明了问题所在。根据警告中的信息,接收人可以决定是否查看邮件。 以上所述的签名和加密邮件的过程都是由邮件客户端程序(如Microsoft Outlook,Foxmail、Netscape Messager等)来完成。对于邮件的发送人来说,就是在邮件发送之前,简单的点击“签名”和“加密”按钮就可以了;对于邮件的接收人来说,邮件接收到后,邮件客户端程序更能够自动对签名邮件进行验证,对加密邮件进行解密,并将验证和解密结果

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

使用OpenSSL建立根CA及自签名证书制作过程 2009-12-24 11:35:32| 分类:openssl |字号订阅 Openssl版本:0.9.8 版本,可从https://www.360docs.net/doc/7118352542.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/7118352542.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"

代码数字签名

一、概述 数字证书又称为数字标识(Digital Certificate,Digital ID)。它提供了一种在Internet 上进行身份验证的方式,是用来标志和证明网络通信双方身份的数字信息文件,与司机驾照或日常生活中的身份证相似。在网上进行电子商务活动时,交易双方需要使用数字证书来表明自己的身份,并使用数字证书来进行有关的交易操作。通俗地讲,数字证书就是个人或单位在Internet 的身份证。 数字证书主要包括三方面的内容:证书所有者的信息、证书所有者的公开密钥和证书颁发机构的签名。 一个标准的X.509 数字证书包含(但不限于)以下内容: 证书的版本信息; 证书的序列号,每个证书都有一个唯一的证书序列号; 证书所使用的签名算法; 证书的发行机构名称(命名规则一般采用X.500 格式)及其私钥的签名; 证书的有效期; 证书使用者的名称及其公钥的信息。 在使用数字证书的过程中应用公开密钥加密技术,建立起一套严密的身份认证系统,实现: 除发送方和接收方外信息不被其他人窃取; 信息在传输过程中不被篡改; 接收方能够通过数字证书来确认发送方的身份; 发送方对于自己发送的信息不能抵赖。 代码签名证书主要颁发给软件开发商,用户在下栽、使用软件代码时,证书将证明软件代码的来源、完整性等信息,主要功能是让用户知道该软件代码是安全的并且没有被篡改过,用户可以安全地进行下载、使用。本业务支持Microsoft Authenticode Techology、Netscape Object Signing、Ms Office 2000/VBA Macro Signing 等代码签名技术。 二、使用代码签名证书 在获得数字证书之前,您必须向一个合法的认证机构(例如:广东省电子商务认证中心)提交证书申请。您需要填写书面的申请表格(试用型数字证书除外),向认证中心的证书申请审核机构(例如:广东省电子商务认证中心的代理点)提交相关的身份证明材料(如身份证、营业执照副本、组织机构代码证等)以供审核。当您的申请通过审核并且交纳相关的费用后,证书申请审核机构会向您返回证书业务受理号和证书下载密码。您通过这个证书业务受理号及下载密码,就可以到认证机构的网站上下载和安装证书了。 详细的证书申请与安装指南请参考https://www.360docs.net/doc/7118352542.html, 上“客户服务区”->“操作指南”->“使用手册”上的相关内容。 以下是微软的代码签名控件的使用说明。详细的操作指南请参考微软提供的代码签名控件的广东省电子商务认证中心证书应用指南(codesign)说明文档。 2.1 利用证书对代码进行签名 2.1.1 第一步:下载微软的控件 在使用代码签名证书对程序员编写的程序代码进行签名之前,请到微软的网站上上下载代码签名的工具。 根据用户不同的环境要求,根据以下链接下载相对应驱动程序:

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/7118352542.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)

【IT专家】代码签名错误-应用程序codesign验证失败

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 代码签名错误:应用程序codesign验证失败代码签名错误:应用程序codesign验证失败[英]Code signing Error: Application failed codesign verification I am very new to iOS development, I have an app all set and ready to be distributed, but I seem to get this error every single time I run the application on my DEVICE only, the iOS simulator works just fine. Heres the full error: ?我是iOS开发的新手,我有一个应用程序都已经设置好并准备发布,但是每次我在我的设备上运行这个应用程序,iOS模拟器就会出现这个错误。这是完整的错误: Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate. (-19011) ?应用程序失败的合作设计验证。签名无效,包含不允许的权利,或者没有与iPhone分发证书签署。(-19011) Here’s the entire log: ?这是整个日志: ?Validate “/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app” cd /Users/masonsocha/Desktop/Apps/MultiBrowser setenv PATH “/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/us r/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin” setenv PRODUCT_TYPE com.apple.product-type.application /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr /bin/Validation “/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app”warning: Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate. (-

公钥私钥数字签名数字证书详解

公钥私钥数字签名数字证书详解
加密和认证
首先我们需要区分加密和认证这两个基本概念。 加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取 正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据 的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依 不同的身份给予不同的权限。 其重点在于用户的真实性。 两者的侧重点是不同的。
公钥和私钥
其次我们还要了解公钥和私钥的概念和作用。 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对 称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以 互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须 妥善保管和注意保密。 公钥私钥的原则:
1. 2. 3. 4. 一个公钥对应一个私钥。 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加 密。
非对称密钥密码的主要应用就是公钥加密和公钥认证, 而公钥加密的过程和 公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。
基于公开密钥的加密过程
比如有两个用户 Alice 和 Bob,Alice 想把一段明文通过双钥加密的技术发 送给 Bob,Bob 有一对公钥和私钥,那么加密解密的过程如下:
1. Bob 将他的公开密钥传送给 Alice。 2. Alice 用 Bob 的公开密钥加密她的消息,然后传送给 Bob。 3. Bob 用他的私人密钥解密 Alice 的消息。
上面的过程可以用下图表示,Alice 使用 Bob 的公钥进行加密,Bob 用自己 的私钥进行解密。

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

SSl双向认证学习笔记 2010-09-02 13:16:39| 分类:ssl | 标签:|字号大中小订阅 url]https://www.360docs.net/doc/7118352542.html,/sunyujia/archive/2008/10/03/3014667.aspx[/url] [url]https://www.360docs.net/doc/7118352542.html,/nataka/archive/2005/09/03/470539.aspx[/url] [url]https://www.360docs.net/doc/7118352542.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/7118352542.html,f。 创建证书请求时,会要求用户输入一些身份信息,示例如下:

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

info@https://www.360docs.net/doc/7118352542.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/7118352542.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/7118352542.html, // 你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址) Email Address: admin@https://www.360docs.net/doc/7118352542.html, // Email地址

相关文档
最新文档