导航:首页 > 证书转让 > 根证书v3

根证书v3

发布时间:2020-12-26 04:27:16

1. 如何将你的浏览器SSL协议的设置寻找SSLv3/TLSv1协议支持

SSL通信的工作原理 SSL协议的主要用途是在两个通信应用程序之间提供私密性和可靠性,这个过程通过3个元素来完成: (1)握手协议:这个协议负责被子用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法和认证方式,并使用公钥技术来生成共享密钥。 (2)记录协议:这个协议用于交换应用数据。应用程序消息被分割成可管理的数据块,还可以压缩,并产生一个MAC(消息认证代码),然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压并重新组合,把结果提供给应用程序协议。 (3)警告协议:这个协议用于每时示在什么时候发生了错误或两个主机之间的会话在什么时候终止。 SSL协议通信的握手步骤如下: 第1步,SSL客户机连接至SSL服务器,并要求服务器验证它自身的身份; 第2步,服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书颁发机构(CA)。通过检查有效日期并确认证书包含可信任CA的数字签名来验证证书的有效性。 第3步,服务器发出一个请求,对客户端的证书进行验证,但是由于缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。 第4步,协商用于加密的消息加密算法和用于完整性检查的哈希函数,通常由客户端提供它支持的所有算法列表,然后由服务器选择最强大的加密算法。 第5步,客户机和服务器通过以下步骤生成会话密钥: ·客户机生成一个随机数,并使用服务器的公钥(从服务器证书中获取)对它加密,以送到服务器上。 ·服务器用更加随机的数据(客户机的密钥可用时则使用客户机密钥,否则以明文方式发送数据)响应。 ·使用哈希函数从随机数据中生成密钥。 SSL VPN的主要优势和不足 上面我们介绍了有关SSL VPN的一些基本情况,但是就像任何新技术的产生一样,相对传统的技术肯定会存在一些重要的优点,当然不足之处通常也是有的,下面就分别予以介绍。 1.SSL VPN的主要优点 这样一种新型的VPN技术主要优势体现在哪里呢?目前这种VPN技术的应用正逐渐呈上升趋势,原因何在呢?下面就是几个主要的方面: (1)无需安装客户端软件:在大多数执行基于SSL协议的远程访问是不需要在远程客户端设备上安装软件。只需通过标准的Web浏览器连接因特网,即可以通过网页访问到企业总部的网络资源。这样无论是从软件协议购买成本上,还是从维护、管理成本上都可以节省一大笔资金,特别是对于大、中型企业和网络服务提供商。 (2)适用大多数设备:基于Web访问的开放体系可以在运行标准的浏览器下可以访问任何设备,包括非传统设备,如可以上网的电话和PDA通讯产品。这些产品目前正在逐渐普及,因为它们在不进行远程访问时也是一种非常理想的现代时尚产品。 (3)适用于大多数操作系统:可以运行标准的因特网浏览器的大多数操作系统都可以用来进行基于Web的远程访问,不管操作系统是Windows、Macintosh、UNIX还是 Linux。可以对企业内部网站和Web站点进行全面的访问。用户可以非常容易地得到基于企业内部网站的资源,并进行应用。 (4)支持网络驱动器访问:用户通过SSL VPN通信可以访问在网络驱动器上的资源。 (5)良好的安全性:用户通过基于SSL的Web访问并不是网络的真实节点,就像IPSec安全协议一样。而且还可代理访问公司内部资源。因此,这种方法可以非常安全的,特别是对于外部用户的访问。 (6)较强的资源控制能力:基于Web的代理访问允许公司为远程访问用户进行详尽的资源访问控制。 (7)减少费用:为那些简单远程访问用户(仅需进入公司内部网站或者进行Email通信),基于SSL 的VPN网络可以非常经济地提供远程访问服务。 (8)可以绕过防火墙和代理服务器进行访问:基于SSL的远程访问方案中,使用NAT(网络地址转换)服务的远程用户或者因特网代理服务的用户可以从中受益,因为这种方案可以绕过防火墙和代理服务器进行访问公司资源,这是采用基于IPSec安全协议的远程访问所很难或者根本做不到的。 2.SSL VPN的主要不足之处 上面介绍SSL VPN技术这么多优势,那么为什么现在不是所有用户都使用SSL VPN,且据权威调查机构调查显示目前绝大多部分企业仍采用IPSec VPN呢?SSL VPN的主要不足在哪里呢? (1)必须依靠因特网进行访问:为了通过基于SSL VPN进行远程工作,当前必须与因特网保持连通性。因为此时Web浏览器实质上是扮演客户服务器的角色,远程用户的Web浏览器依靠公司的服务器进行所有进程。正因如此,如果因特网没有连通,远程用户就不能与总部网络进行连接,只能单独工作。 (2)对新的或者复杂的Web技术提供有限支持:基于SSL的VPN方案是依赖于反代理技术来访问公司网络的。因为远程用户是从公用因特网来访问公司网络的,而公司内部网络信息通常不仅是处于防火墙后面,而且通常是处于没有内部网IP地址路由表的空间中。反代理的工作就是翻译出远程用户Web浏览器的需求,通常使用常见的URL地址重写方法,例如,内部网站也许使用内部DNS服务器地址链接到其他的内部网链接,而URL地址重写必需完全正确地读出以上链接信息,并且重写这些URL地址,以便这些链接可以通过反代理技术获得路由,当有需要时,远程用户可以轻松地通过点击路由进入公司内部网络。对于URL地址重写器完全正确理解所传输的网页结构是极其重要的,只有这样才可正确显示重写后的网页,并在远程用户计算机浏览器上进行正确地操作。 (3)只能有限地支持Windows应用或者其它非Web系统:因为大多数基于SSL的VPN都是基Web浏览器工作的,远程用户不能在Windows,、UNIX、Linux、AS400或者大型系统上进行非基于Web界面的应用。虽然有些SSL提供商已经开始合并终端服务来提供上述非Web应用,但不管如何,目前SSL VPN还未正式提出全面支持,这一技术还有待讨论,也可算是一个挑战。 (4)只能为访问资源提供有限安全保障:当使用基于SSL协议通过Web浏览器进行VPN通信时,对用户来说外部环境并不是完全安全、可达到无缝连接的。因为SSL VPN只对通信双方的某个应用通道进行加密,而不是对在通信双方的主机之间的整个通道进行加密。在通信时,在Web页面中呈现的文件很难也基本上无法保证只出现类似于上传的文件和邮件附件等简单的文件,这样就很难保证其它文件不被暴露在外部,存在一定的安全隐患

2. 如何获取数字证书(x509Certificate)中的指纹算法

创建X509证书方法较多,在Windows 环境下大致总结了几中办法,
1) 通过CA获取证书,
2) 通过微软提供的makecert 工具得到测试证书
3) 编程的方法创建,.Net提供了 X509Certificate2 类,该类可以用于创建证书,但只能从RawData中创建,创建后无法修改除FriendlyName以外的任何属性。

我在互联网上找了很久,始终没有找到完全通过程序创建自定义的证书的方法。后来想了一个折中办法,就是用程序调用 makecert.exe 先生成一个证书,证书的一些参数如Subject,有效期,序列号等可以通过参数传入,然后把生成的证书文件读到Rawdata中,得到X509Certificate2 类型的证书对象。当然这种方法确实比较笨,必须要依赖外部进程。等后面有时间的话,我还是想按照X509 V3 标准,自己创建RawData,然后生成证书,这样应该是比较灵活的做法。不知道网友们有没有什么更好的方法来创建一个自定义的证书。

通过 makecert.exe 创建X509证书的代码如下,供大家参考

static object semObj = new object();

/// <summary>
/// 自定义的证书信息
/// </summary>
public class T_CertInfo
{
public String FriendlyName;
public String Subject;
public DateTime BeginDate;
public DateTime EndDate;
public int SerialNumber;
}

/// <summary>
/// 生成X509证书
/// </summary>
/// <param name="makecrtPath">makecert进程的目录</param>
/// <param name="crtPath">证书文件临时目录</param>
/// <param name="certInfo">证书信息</param>
/// <returns></returns>
public static X509Certificate2 CreateCertificate(String makecrtPath, String crtPath,
T_CertInfo certInfo)
{
Debug.Assert(certInfo != null);
Debug.Assert(certInfo.Subject != null);

string MakeCert = makecrtPath + "makecert.exe";
string fileName = crtPath + "cer";

string userName = Guid.NewGuid().ToString();

StringBuilder arguments = new StringBuilder();

arguments.AppendFormat("-r -n \"{0}\" -ss my -sr currentuser -sky exchange ",
certInfo.Subject);

if (certInfo.SerialNumber > 0)
{
arguments.AppendFormat("-# {0} ", certInfo.SerialNumber);
}

arguments.AppendFormat("-b {0} ", certInfo.BeginDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("-e {0} ", certInfo.EndDate.ToString(@"MM\/dd\/yyyy"));
arguments.AppendFormat("\"{0}\"", fileName);

3. 如何生成CA证书

如何生成CA证书

一般情况下,如果能找到可用的证书,就可以直接使用,只不过会因证书的某些信息不正确或与部署证书的主机不匹配而导致浏览器提示证书无效,但这并不影响使用。

需要手工生成证书的情况有:

找不到可用的证书
需要配置双向SSL,但缺少客户端证书
需要对证书作特别的定制
首先,无论是在Linux下还是在Windows下的Cygwin中,进行下面的操作前都须确认已安装OpenSSL软件包。

1. 创建根证书密钥文件(自己做CA)root.key:

openssl genrsa -des3 -out root.key

输出内容为:

[lenin@archer ~]$ openssl genrsa -des3 -out root.key
Generating RSA private key, 512 bit long molus
……………..++++++++++++
..++++++++++++
e is 65537 (0×10001)
Enter pass phrase for root.key: ← 输入一个新密码
Verifying – Enter pass phrase for root.key: ← 重新输入一遍密码

2. 创建根证书的申请文件root.csr:

openssl req -new -key root.key -out root.csr

输出内容为:

[lenin@archer ~]$ openssl req -new -key root.key -out root.csr
Enter pass phrase for root.key: ← 输入前面创建的密码
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,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:CN ← 国家代号,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音
Locality Name (eg, city) []:BeiJing ← 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []: ← 此时不输入
Email Address []:[email protected] ← 电子邮箱,可随意填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入

3. 创建一个自当前日期起为期十年的根证书root.crt:

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.req -out root.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./[email protected]
Getting Private key
Enter pass phrase for root.key: ← 输入前面创建的密码

4. 创建服务器证书密钥server.key:

openssl genrsa –des3 -out server.key 2048

输出内容为:

[lenin@archer ~]$ openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long molus
….+++
…………………………………………..+++
e is 65537 (0×10001)

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

5.创建服务器证书的申请文件server.csr:

openssl req -new -key server.key -out server.csr

输出内容为:

[lenin@archer ~]$ openssl req -new -key server.key -out server.req
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,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省名,拼音
Locality Name (eg, city) []:BeiJing ← 市名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []:www.mycompany.com ← 服务器主机名,若填写不正确,浏览器会报告证书无效,但并不影响使用
Email Address []:[email protected] ← 电子邮箱,可随便填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入

6. 创建自当前日期起有效期为期两年的服务器证书server.crt:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in server.csr -out server.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www.mycompany.com/[email protected]
Getting CA Private Key
Enter pass phrase for root.key: ← 输入前面创建的密码

7. 创建客户端证书密钥文件client.key:

openssl genrsa -des3 -out client.key 2048

输出内容为:

[lenin@archer ~]$ openssl genrsa -des3 -out client.key 2048
Generating RSA private key, 2048 bit long molus
……………………………………………………………………………..+++
……………………………………………………………………………………………………….+++
e is 65537 (0×10001)
Enter pass phrase for client.key: ← 输入一个新密码
Verifying – Enter pass phrase for client.key: ← 重新输入一遍密码

8. 创建客户端证书的申请文件client.csr:

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

输出内容为:

[lenin@archer ~]$ openssl req -new -key client.key -out client.csr
Enter pass phrase for client.key: ← 输入上一步中创建的密码
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,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省名称,拼音
Locality Name (eg, city) []:BeiJing ← 市名称,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不填
Common Name (eg, YOUR name) []:Lenin ← 自己的英文名,可以随便填
Email Address []:[email protected] ← 电子邮箱,可以随便填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不填
An optional company name []: ← 可以不填

9. 创建一个自当前日期起有效期为两年的客户端证书client.crt:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in client.csr -out client.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www.mycompany.com/[email protected]
Getting CA Private Key
Enter pass phrase for root.key: ← 输入上面创建的密码

10. 将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx:

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

输出内容为:

[lenin@archer ~]$ openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
Enter pass phrase for client.key: ← 输入上面创建的密码
Enter Export Password: ← 输入一个新的密码,用作客户端证书的保护密码,在客户端安装证书时需要输入此密码
Verifying – Enter Export Password: ← 确认密码

11. 保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件

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

参考:http://sinolog.it/?p=1460

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

http://blog.sina.com.cn/s/blog_4fd50c390101891c.html

x509证书一般会用到三类文,key,csr,crt。

Key是私用密钥openssl格,通常是rsa算法。

Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。

crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。

1.key的生成

opensslgenrsa -des3 -out server.key 2048

这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:

opensslrsa -in server.key -out server.key

server.key就是没有密码的版本了。

2.生成CA的crt

opensslreq -new -x509 -key server.key -out ca.crt -days3650

生成的ca.crt文件是用来签署下面的server.csr文件。

3.csr的生成方法

opensslreq -new -key server.key -outserver.csr

需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。

4.crt生成方法

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

opensslx509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key-CAcreateserial -out server.crt

输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。

最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt

证书合并:

catserver.key server.crt > server.pem

4. 如何使用OpenSSL工具生成根证书与应用证书

使用OpenSSL工具生成根证书与应用证书方法:
1、生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认) openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt
2、 为顶级CA的私钥文件去除保护口令 openssl rsa -in CARoot1024.key -out CARoot1024.key
3、 生成顶级CA的公钥证书和私钥文件,有效期15年(RSA 2048bits,指定) openssl req -newkey rsa:2048 -x509 -days 5480 -keyout CARoot2048.key -out CARoot2048.crt
4、 为顶级CA的私钥文件去除保护口令 openssl rsa -in CARoot2048.key -out CARoot2048.key
5、 为应用证书/中级证书生成私钥文件 openssl genrsa -out app.key 2048
6、 根据私钥文件,为应用证书/中级证书生成 csr 文件(证书请求文件) openssl req -new -key app.key -out app.csr
7、 使用CA的公私钥文件给 csr 文件签名,生成应用证书,有效期5年 openssl ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything
8、 使用CA的公私钥文件给 csr 文件签名,生成中级证书,有效期5年 openssl ca -extensions v3_ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything
以上是生成根证书与应用证书过程中要用到的所有命令,根据生成目标不同,分为三组。其中,前面两组都用于生成自签名的顶级CA(区别只在于密钥长度不同),实际应用中只需根据需求选择一组即可。 最后一组用于生成非自签名的证书,包括中级证书与应用证书。所谓中级证书,是具有继续颁发下级证书权限的子CA,而本文中所说的应用证书,特指不能用来继续颁发下级证书,只能用来证明个体身份的证书。顶级CA在签发二者的时候,只是多少一个 -extensions v3_ca 选项的区别,这个选项赋予被签发的证书继续签发下级证书的权力。

5. 如何使用openssl生成证书

Step 1. Create key (password protected)

openssl genrsa -out prvtkey.pem 1024/2038 (with out password protected)

openssl genrsa -des3 -out prvtkey.pem 1024/2048 (password protected)

这个命令会生成一个/2048位的密钥。
Step 2. Create certification request

openssl req -new -key prvtkey.pem -out cert.csr

openssl req -new -nodes -key prvtkey.pem -out cert.csr

这个命令将会生成一个证书请求,当然,用到了前面生成的密钥prvtkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

Step 3: Send certificate request to Certification Authority (CA)

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key prvtkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

cacert.pem 生成过程见“OpenSSL建立自己的CA”

有了privkey.pem和cacert.pem文件后就可以在自己的程序中使用了,比如做一个加密通讯的服务器

-------------
OpenSSL建立自己的CA

(1) 环境准备

首先,需要准备一个目录放置CA文件,包括颁发的证书和CRL(Certificate Revoke List)。
这里我们选择目录 /var/MyCA。

然后我们在/var/MyCA下建立两个目录,certs用来保存我们的CA颁发的所有的证书的副本;private用来保存CA证书的私钥匙。

除了生成钥匙,在我们的CA体系中还需要创建三个文件。第一个文件用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01。第二个文件是一个排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空。

$ mkdir /var/MyCA
$ cd /var/MyCA
$ mkdir certs private
$ chmod g-rwx,o-rwx private
$ echo "01" > serial
$ touch index.txt

第三个文件是OpenSSL的配置文件,创建起来要棘手点。示例如下:

$ touch openssl.cnf

文件内容如下:

[ ca ]
default_ca = myca

[ myca ]
dir = /var/MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial

default_crl_days= 7
default_days = 365
default_md = md5

policy = myca_policy
x509_extensions = certificate_extensions

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

[ certificate_extensions ]
basicConstraints= CA:false

我们需要告诉OpenSSL配置文件的路径,有两种方法可以达成目的:通过config命令选项;通过环境变量OPENSSL_CONF。这里我们选择环境变量的方式。

$ OPENSSL_CONF=/var/MyCA/openssl.cnf"
$ export OPENSSL_CONF

(2) 生成根证书 (Root Certificate)

我们需要一个证书来为自己颁发的证书签名,这个证书可从其他CA获取,或者是自签名的根证书。这里我们生成一个自签名的根证书。

首先我们需要往配置文件里面添加一些信息,如下所示,节名和命令行工具的命令req一样。我们把所有必要的信息都写进配置,而不是在命令行输入,这是唯一指定X.509v3扩展的方式,也能让我们对如何创建根证书有个清晰的把握。

[ req ]
default_bits = 2048
default_keyfile = /var/MyCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = My Test CA
stateOrProvinceName = HZ
countryName = CN
emailAddress = [email protected]
organizationName = Root Certification Authority
[ root_ca_extensions ]
basicConstraints = CA:true

万事俱备,我们可以生成根证书了。注意设置好环境变量OPENSSL_CONF。

$ openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 356

注:“-days 356“控制有效期限为365天,默认为30天。

验证一下我们生成的文件。

$ openssl x509 -in cacert.pem -text -noout

(3) 给客户颁发证书

在给客户颁发证书之前,需要客户提供证书的基本信息。我们另外开启一个终端窗口,使用默认的OpenSSL配置文件(不要让之前的OPENSSL_CONF干扰我们,那个配置是专门用来生成根证书的)。

命令和我们生成根证书的类似,都是req,不过需要提供一些额外的信息。如下:

$ openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM

有两次提示要口令,第一次的口令用来加密私钥匙testkey.pem,第二次口令一般被OpenSSL忽略。
结果生成两个文件:testkey.pem,私钥匙;testreq.pem,请求信息,其中包括公钥匙。

我们来看看testreq.pem都有哪些信息?

$ openssl req -in testreq.pem -text -noout

现在,我们可以把testreq.pem提交给我们的CA生成证书了。
为了方便起见,我们假定testreq.pem在//var/MyCA/private/中。

$ openssl ca -in testreq.pem

有三次提示,一次是问你CA的私钥匙密码,两次是确认,输出的结果就是为客户颁发的证书。
可以通过batch选项取消命令提示,可通过notext选项取消证书的输出显示。
此外,还可以一次给多个客户颁发证书,方法是用 infiles选项替换in选项,不过这个选项必须放在最后,因为此后的任何字符均被处理为文件名称列表。

生成的证书放在certs目录,同时index.txt和serial的内容都发生了改变。
publicdoubleside=10.0;//去掉static

6. 关于S60V3手机的‘根证书’‘17项权限证书’‘19项权限证书’‘破解补丁’解释一下!谢谢!

以下是我的转载:(有你问的解答)
破解后话:权限、破解、证书、病毒逐一解释明白!(明白的直接跳过)

S60 V3系统就像一个宝藏,有20个秘室(具体请看后面),秘室是上锁的!所谓的破解就是打开所有的秘室,大家可以自由进入!这个就是关闭权限校验!一个程序要进入这个宝藏,证书就是开启这些宝藏的钥匙!有些软件要需要进入17个秘室就要17把钥匙!而一个证书包含多少个权限就对应多少把钥匙!对于没有证书的人,我们需要把宝藏的锁(根证书)换成自己的锁,同时给这把锁配制一把万能钥匙,就可以打开所有的秘室了!这个就是关闭证书校验!

这里要澄清一个误解,很多人把证书和签名看成了一回事,大概主要是因为证书比较难获得,而Key容易得到,因此忽略了私钥的重要性。实质上就加密原理而言,私钥比公钥更重要。证书实质上是经过认证机构签名后的公钥,它可以而且应该是公开的,合适的不可逆加密算法使得很难从公钥得道私钥。从理论上和实际上讲,破解权限后,我们得到了NOKIA签名的根证书,但是上无法得到私钥,就签名而言毫无意义。将NOKIA的根证书(宝藏的锁)换成我们自己做的根证书(自己的锁)。现在(我们不再需要开发者证书为程序自签名),这些程序只需要签上通用证书(万能钥匙)就能给已破解的手机使用了.破解后有了Allfiles能力后能自由进出系统目录读写/删除/修改,这能力能轻易提取原本受保护的手机内容c。现在很多软件包括通话背景音,随机铃声这些大家期待已久的软件也都可以通过签上通用证书(万能钥匙)给已破解的手机使用了!

签名是什么?签名就是把你自己的手机串号写入你要安装的软件里,一一对应,给A手机用户签名的软件其他用户就不可以用了,会出现证书错误的提示.软件有了这把钥匙(证书),就可以安装到手机系统里了(进入宝藏了).这把钥匙以前是塞班免费发给每个手机的,现在是是通过publisher ID才可以申请到一个最多1000个手机通用的证书(钥匙),二楼的教程是在把门锁换了的基础上给了大家一把通用的万能钥匙!

当然锁和钥匙我都给出了,基于这些东西当然也可以编写出相应的病毒了!(好象大家对这个最关心!)目前来说是不存在S60 V3病毒的!病毒也是一种程序,电脑PC上的病毒对手机没有用,N72以前那些S60 V2系统的病毒对于S60 V3系统的是没有任何作用的!现在唯一的病毒就是根据我这里给出的万能钥匙编写出来的只能用于用我这种方法破解了的手机!(对于没有破解的手机没有任何威胁!)对于这个问题,当然不是没有可能,只要大家不下载未经过各大论坛测试使用的软件就可以了!

当然,最安全的解决办法就是自己制作这把锁

20项证书权限能力:
(1)NetworkServices:用于使用移动网络。
(2)LocalServices:用于通过U*、红外和蓝牙发送或接收消息。
(3)ReadUserData:准许读取用户数据。
(4)WriteUserData:准许写入用户数据。
(5)Location:准许访问手机的位置信息。
(6)UserEnvironment:准许访问用户及其附近环境的实时保密信息。
(7)PowerMgmt:准许在系统中中断任何进程或者转换机器状态。
(8)SwEvent:准许生成或者捕获键盘以及笔输入事件。
(9)ReadDeviceData:准许读取系统设备驱动数据。
(10)WriteDeviceData:准许写入系统设备驱动数据。
(11)SurroundingsDD:准许访问提供外围设备输入信息的逻辑设备驱动。
(12)TustedUI:区分”normal”应用和”trusted”应用的UI。
(13)ProtServ:准许服务器应用可以用一个受保护的名字进行注册。
(14)NetworkControl:准许修改或者访问网络协议控制。
(15)MultimediaDD:准许对所有多媒体设备驱动的访问。
(16)CommDD:准许访问通信设备驱动。
(17)DiskAdmin:准许进行硬盘管理操作,例如格式化驱动器。
(18)DRM:准许访问DRM保护的内容。
(19)TCB:准许在终端中访问/*s以及/resource目录。
(20)AllFiles:准许系统中的所有文件可见,可对在/private下的文件进行写操作。
"个人开发证书"是具有前面13项功能的证书。"PublisherID证书"是具有前面17项的能力的证书。以前塞班免费给的证书都是13个权限,现在各大论坛及淘宝商家发的就是17个权限的,如今前五次内测版A4 有19个权限(除TCB外的所有权限)!理由是所有程序都需要输入法,故输入法DLL需要被所有程序载入。而根证书有20项权限。

转载自 wjq135寒冰冷雨风
----------------
下面是有关破解:
http://bbs.tompda.com/thread-2174879-1-1.html

7. 网络里的一个问题。windows证书的使用和ssl。这个是什么意思啊

呵呵,ie7确实提高了安全性,但随之而来确实有很多麻烦,你看看下面这些肯定对你有帮助的。我曾经就因为SSL 2.0没有开启而打不开,lz好好看看吧

ie7浏览器是伴随着Vista操作系统而诞生的,不过微软也发布了针对XP系统的IE7浏览器版本。不过不管是Vista系统还是XP系统下的IE7,由于他的安全防范意识有很大提高,对于非法站点和安全加密站点的过滤都比较苛刻,所以在IE7下访问https这种通过SSL协议加密的网站都会出现故障。今天我们就来一步步解决此问题。

一、XP系统下IE7访问https站点故障排除功略:

默认情况我们在XP系统下通过XP版本的IE7浏览器访问https加密的站点都会出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”,我们必须再次点“继续浏览此网站(不推荐)”才能查看页面信息。

那么如何来解决这个问题呢?毕竟每次访问Https站点都需要重复点“继续浏览此网站(不推荐)”,在操作上带来很大的麻烦。下面我们就通过安装证书步骤来解决此问题。

第一步:当我们用IE7浏览Https站点后会在地址栏右边出现一个红色的“证书错误”的提示,我们点该红色按钮,然后选择“查看证书”。

第二步:在打开的“查看证书”窗口中的“常规”标签中点右下角的“安装证书”按钮。

第三步:出现“证书导入向导”后点“下一步”按钮继续。

第四步:选择证书存储的系统区域,通过“浏览”按钮设置将证书保存为“受信任的根证书颁发机构”。

第五步:之后在安全警告窗口中选择“是”按钮来安装该证书。

第六步:设置完毕后我们再次访问该https站点就不会出现任何问题,也不会再出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”的错误提示了。

二、Vista系统下IE7访问https站点故障排除功略:

在Vista系统下使用IE7浏览器访问https站点也会出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”的错误提示,但是他的解决步骤却和XP下IE7有很大区别。这是因为在Vista系统中IE7访问https证书查看里没有安装的提示,错误信息提示“由于CA根证书不在受信任的根证书颁发机构存储区中,所以他不受信任“。

那么该如何解决呢?至今笔者还没有发现可以通过调整IE7浏览器的设置来解决此问题,不过可以通过证书导入来解决。

第一步:首先打开IE7浏览器,然后通过“工具->internet选项”打开属性设置窗口,并选择“内容”标签,直接点“证书”标签。

第二步:选择要安装的证书类型时点“受信任的根证书颁发机构”,接下来点左下角的“导入”按钮。

第三步:这时就需要我们在“要导入的文件”设置窗口中找到该网站的证书文件。至于这个证书文件如何获得,笔者的方法是通过在别的浏览器(例如IE 6或XP系统IE 7)中将该网站对应的证书以文件的形式导出即可,接下来回到Vista系统中导入此文件即可。

第四步:在证书存储设置处和上面介绍的方法一样,选择将所有的证书放入下列存储——受信任的根证书颁发机构。

第五步:在安装该证书的窗口中点“是”按钮即可。

第六步:所有工作完成后会出现导入成功的提示,以后我们再访问https加密的站点就不会出现上面的错误提示了。

小提示:如果修改设置后问题依然没有解决,那么我们还应该在IE浏览器的internet选项中高级标签下的“使用SSL 2.0”勾选,因为默认情况下IE7把SSL 2.0协议过滤掉了,如果https网站恰巧只能使用SSL 2.0协议访问就会出现错误提示。

三、IE 7下HTTPS网站访问故障解决功略:

经过总结和实验笔者发现在IE 7中访问HTTPS站点确实会出现这样或那样的问题,具体表现如下。

(1)SSL 2.0没有开启而出现错误:

现象:当浏览一个仅SSLv2的站点时,显示一个错误页面。

原因:Internet Explorer 7中默认关闭了SSLv2协议。SSLv2协议存在已知的安全问题,已被SSLv3和TLSv1协议替代。

解决办法:在IE 7属性中高级标签下开启SSL 2.0,让浏览器支持该协议。

(2)https站点密码验证使用弱口令:

现象:在Windows Vista上浏览一个被配置成使用弱密码(40位/56位加密)的HTTPS站点时,显示一个错误页面。

原因:在Windows Vista中,默认已经关闭了弱密码,仅开启强密码。

解决办法:对于访问者没有办法解决,只能等待https站点管理员修改验证使用的弱口令。

(3)站点证书错误:

现象:当浏览一个显示包含错误的安全证书的HTTPS站点时,显示一个错误页面。

原因:为了改进安全性和用户体验,IE7阻止了访问显示包含错误的安全证书的HTTPS站点。这个改变代替了出现在IE6中的对话框。

解决办法:如果站点的证书已过期,则没有处理方法。联系站点的所有者,并要求他们更新证书。

(4)https页面引入http页面信息:

现象:当浏览一个含有HTTPS和HTTP混合内容的页面时,出现一个信息栏,代替Internet Explorer 6或更早版本中出现的对话框。

原因:为了改进安全性和用户体验,IE7默认阻止了在HTTPS页面显示HTTP内容。这个改变代替了出现在IE6中的对话框。

解决办法:通过浏览器的internet选项的“安全”标签,选择internet图标,然后点“自定义级别”,向下滚动到Miscellaneous部分,调整Display mixed content设置的值。

(5)证书无效的错误:

现象:当在Windows Vista上浏览HTTPS站点时,出现一个针对证书撤回的检查,以决定证书是否仍然有效。

原因:Windows Vista中对性能作出的改进以及对OCSP协议的支持,通过默认开启撤回检查,使得Windows Vista上的IE7安全性得到了提升。

解决办法:如果该问题影响了实际环境的性能问题,可以关闭证书撤回的选项。通过internet选项的“高级”标签里“安全”下的“检查服务器证书吊销”,将其前面的对勾去掉。

四、总结:

至此我们就完成了几乎所有IE7浏览器访问https加密的站点出错的问题,各位IT168的读者可以根据自己的实际错误提示和上面的多个办法来解决故障。

8. https证书生成方法,怎么生成https证书

HTTPS认证、复HTTPS证书,可以在制淘宝里面找到Gworg申请。

申请HTTPS证书:

  1. 确定并且列出具体需要的域名。

  2. 进入淘宝中找到Gworg并且选择HTTPS证书。

  3. 根据提示完成HTTPS域名认证。

  4. 获得HTTPS证书并且安装到服务器。

解决办法:Gworg认证并且活动和HTTPS证书。

9. https://60.216.53.122 打开后显示“证书错误”是怎么一回事 无法加载

XP系统下IE7访问https站点故障排除:

默认情况我们在XP系统下通过XP版本的IE7浏览器访问https加密的站点都会出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”,我们必须再次点“继续浏览此网站(不推荐)”才能查看页面信息。

第一步:当我们用IE7浏览Https站点后会在地址栏右边出现一个红色的“证书错误”的提示,我们点该红色按钮,然后选择“查看证书”。

第二步:在打开的“查看证书”窗口中的“常规”标签中点右下角的“安装证书”按钮。

第三步:出现“证书导入向导”后点“下一步”按钮继续。

第四步:选择证书存储的系统区域,通过“浏览”按钮设置将证书保存为“受信任的根证书颁发机构”。

第五步:之后在安全警告窗口中选择“是”按钮来安装该证书。

第六步:设置完毕后我们再次访问该https站点就不会出现任何问题,也不会再出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”的错误提示了。

Vista系统下IE7访问https站点故障排除:

在Vista系统下使用IE7浏览器访问https站点也会出现“此网站的安全证书有问题,该网站提供的安全证书不是由受信任的证书办法机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据”的错误提示,但是他的解决步骤却和XP下IE7有很大区别。这是因为在Vista系统中IE7访问https证书查看里没有安装的提示,错误信息提示“由于CA根证书不在受信任的根证书颁发机构存储区中,所以他不受信任”。

那么该如何解决呢?至今笔者还没有发现可以通过调整IE7浏览器的设置来解决此问题,不过可以通过证书导入来解决。

第一步:首先打开IE7浏览器,然后通过“工具->internet选项”打开属性设置窗口,并选择“内容”标签,直接点“证书”标签。

第二步:选择要安装的证书类型时点“受信任的根证书颁发机构”,接下来点左下角的“导入”按钮。

第三步:这时就需要我们在“要导入的文件”设置窗口中找到该网站的证书文件。至于这个证书文件如何获得,笔者的方法是通过在别的浏览器(例如IE6或XP系统IE7)中将该网站对应的证书以文件的形式导出即可,接下来回到Vista系统中导入此文件即可。

第四步:在证书存储设置处和上面介绍的方法一样,选择将所有的证书放入下列存储——受信任的根证书颁发机构。

第五步:在安装该证书的窗口中点“是”按钮即可。

第六步:所有工作完成后会出现导入成功的提示,以后我们再访问https加密的站点就不会出现上面的错误提示了。

如果修改设置后问题依然没有解决,那么我们还应该在IE浏览器的internet选项中高级标签下的“使用SSL2.0”勾选,因为默认情况下IE7把SSL2.0协议过滤掉了,如果https网站恰巧只能使用SSL2.0协议访问就会出现错误提示。

三、IE7下HTTPS网站访问故障解决:

经过总结和实验笔者发现在IE7中访问HTTPS站点确实会出现这样或那样的问题,具体表现如下。

(1)SSL2.0没有开启而出现错误:

现象:当浏览一个仅SSLv2的站点时,显示一个错误页面。

原因:InternetExplorer7中默认关闭了SSLv2协议。SSLv2协议存在已知的安全问题,已被SSLv3和TLSv1协议替代。

解决办法:在IE7属性中高级标签下开启SSL2.0,让浏览器支持该协议。

(2)https站点密码验证使用弱口令:

现象:在WindowsVista上浏览一个被配置成使用弱密码(40位/56位加密)的HTTPS站点时,显示一个错误页面。

原因:在WindowsVista中,默认已经关闭了弱密码,仅开启强密码。

解决办法:对于访问者没有办法解决,只能等待https站点管理员修改验证使用的弱口令。

(3)站点证书错误:

现象:当浏览一个显示包含错误的安全证书的HTTPS站点时,显示一个错误页面。

原因:为了改进安全性和用户体验,IE7阻止了访问显示包含错误的安全证书的HTTPS站点。这个改变代替了出现在IE6中的对话框。

解决办法:如果站点的证书已过期,则没有处理方法。联系站点的所有者,并要求他们更新证书。

(4)https页面引入http页面信息:

现象:当浏览一个含有HTTPS和HTTP混合内容的页面时,出现一个信息栏,代替InternetExplorer6或更早版本中出现的对话框。

原因:为了改进安全性和用户体验,IE7默认阻止了在HTTPS页面显示HTTP内容。这个改变代替了出现在IE6中的对话框。

解决办法:通过浏览器的internet选项的“安全”标签,选择internet图标,然后点“自定义级别”,向下滚动到Miscellaneous部分,调整Displaymixedcontent设置的值。

(5)证书无效的错误:

现象:当在WindowsVista上浏览HTTPS站点时,出现一个针对证书撤回的检查,以决定证书是否仍然有效。

原因:WindowsVista中对性能作出的改进以及对OCSP协议的支持,通过默认开启撤回检查,使得WindowsVista上的IE7安全性得到了提升。

解决办法:如果该问题影响了实际环境的性能问题,可以关闭证书撤回的选项。通过internet选项的“高级”标签里“安全”下的“检查服务器证书吊销”,将其前面的对勾去掉。

总结:以上是由于IE7安全性高,导致的访问https加密的站点出错的问题,希望能帮助大家,也希望大家好好看看!

10. 怎么破解openssl 生成的证书

使用OpenSSL工具生成根证书与应用证书方法:1、生成顶级CA的公钥证书和私钥文件,有效期10年(RSA1024bits,默认)opensslreq-new-x509-days3650-keyoutCARoot1024.key-outCARoot1024.crt2、为顶级CA的私钥文件去除保护口令opensslrsa-inCARoot1024.key-outCARoot1024.key3、生成顶级CA的公钥证书和私钥文件,有效期15年(RSA2048bits,指定)opensslreq-newkeyrsa:2048-x509-days5480-keyoutCARoot2048.key-outCARoot2048.crt4、为顶级CA的私钥文件去除保护口令opensslrsa-inCARoot2048.key-outCARoot2048.key5、为应用证书/中级证书生成私钥文件opensslgenrsa-outapp.key20486、根据私钥文件,为应用证书/中级证书生成csr文件(证书请求文件)opensslreq-new-keyapp.key-outapp.csr7、使用CA的公私钥文件给csr文件签名,生成应用证书,有效期5年opensslca-inapp.csr-outapp.crt-certCARoot1024.crt-keyfileCARoot1024.key-days1826-policypolicy_anything8、使用CA的公私钥文件给csr文件签名,生成中级证书,有效期5年opensslca-extensionsv3_ca-inapp.csr-outapp.crt-certCARoot1024.crt-keyfileCARoot1024.key-days1826-policypolicy_anything以上是生成根证书与应用证书过程中要用到的所有命令,根据生成目标不同,分为三组。其中,前面两组都用于生成自签名的顶级CA(区别只在于密钥长度不同),实际应用中只需根据需求选择一组即可。最后一组用于生成非自签名的证书,包括中级证书与应用证书。所谓中级证书,是具有继续颁发下级证书权限的子CA,而本文中所说的应用证书,特指不能用来继续颁发下级证书,只能用来证明个体身份的证书。顶级CA在签发二者的时候,只是多少一个-extensionsv3_ca选项的区别,这个选项赋予被签发的证书继续签发下级证书的权力。

阅读全文

与根证书v3相关的资料

热点内容
武汉疫情投诉 浏览:149
知识产权合作开发协议doc 浏览:932
广州加里知识产权代理有限公司 浏览:65
企业知识产权部门管理办法 浏览:455
消费315投诉 浏览:981
马鞍山钢城医院 浏览:793
冯超知识产权 浏览:384
介绍小发明英语作文 浏览:442
版权使用权协议 浏览:1000
2018年基本公共卫生服务考核表 浏览:884
马鞍山候车亭 浏览:329
学校矛盾纠纷排查领导小组 浏览:709
张江管委会知识产权合作协议 浏览:635
关于开展公共卫生服务项目相关项目督导的函 浏览:941
闺蜜证书高清 浏览:11
转让房转让合同协议 浏览:329
矛盾纠纷排查调处工作协调交账会议纪要 浏览:877
云南基金从业资格证书查询 浏览:313
新知识的摇篮创造力 浏览:187
股转转让协议 浏览:676