X.509证书生成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了X.509证书生成相关的知识,希望对你有一定的参考价值。

创建数字证书

用户对数字证书的认可决定于对证书颁发机构的信任,所以证书颁发机构决定了数字证书的可用范围。由于官方认可的数字证书颁发机构,比如VeriSign、Thawte(OpenSSL),具有普遍的信任度,在大部分情况下是理想的选择。但是对于学习研究或者开发测试,我们没有必要去购买这些商用证书,采用利用一些工具以手工的方式创建证书。

由于WCF的安全机制广泛使用到数字证实,我们很有必要学会手工创建数字证书。微软为我们提供了一个强大的创建数字证书的工具MakeCert.exe,我们可以借助这个工具采用命令行的方式创建我们需要的数字证书。MakeCert.exe具有很多命令行开关,限于篇幅的问题不可能对它们一一介绍,在这里仅仅对几个常用的开关作一下简单的介绍,有兴趣的读者可以查阅MSDN在线文档了解MakeCert.exe所有命令行开关的含义,对应的地址为http://msdn.microsoft.com/zh-cn/library/bfsktky3(v=vs.80).aspx

  • -n x509name:指定主题的证书名称。最简单的方法是在双引号中指定此名称,并加上前缀CN=,例如,"CN=My Name";
  • -pe:将所生成的私钥标记为可导出,这样可将私钥包括在证书中;
  • -sr location:数字证书的存储位置,具有两个可选值:CurrentUser(和LocalMachine。前者基于当前登录用户,后者基于本机;
  • -ss store:数字证书的存储区;
  • -sky keytype:指定主题的密钥类型,必须是 signature、exchange 或一个表示提供程序类型的整数。默认情况下,可传入1表示交换密钥,传入2表示签名密钥。

比如我通过下面的命令会创建一个主题名称为www.artech.com的数字证书,该证书具有交换密钥类型,并且包含私钥。

   1: MakeCert -n "CN=www.artech.com" -pe -sr LocalMachine -ss My -sky exchange
一旦上面的命令成功执行,生成的证书会自动保存到基于本机的个人(Personal)存储区中。你可以通过MMC的证书管理单元(Snap-in)查看该证书, 关于如何通过MMC查看证书,可以参考这个地址:http://msdn.microsoft.com/zh-cn/library/ms788967.aspx。下图是证书MMC管理单元的截图,你可以看到我们创建的数字证书已经被存储到了我们在命令行中指定的存储区,颁发机构被默认设定为Root Agency。

以上是关于X.509证书生成的主要内容,如果未能解决你的问题,请参考以下文章

X.509证书生成

比较java中的2 x509证书

联盟链系列 - 用Openssl颁发X.509证书

如何测试需要证书(X.509 客户端证书)的 REST API?

如何从openssl生成的密钥生成X.509证书

如何创建个人证书