一、系统环境说明

  • Linux & OpenSSL
 Linux localhost 2.6.-.el5 # SMP Tue Mar  :: EDT  x86_64 x86_64 x86_64 GNU/Linux
[root@localhost /home/study]#openssl version
OpenSSL 0.9.8e-fips-rhel5 Jul
  • Windows & IIS

  Windows 7 X64 , IIS 7, 默认网站

二、创建密钥链

  注意:请先看一下最后的注意事项,避免走弯路。

  1. 创建根证书(自签名证书)

 echo "create root ca key"
openssl genrsa -out root-key.key
echo ----------------------
echo "create root cert request"
openssl req -new -key root-key.key -out root-req.csr -text -subj "/CN=MRootCA"
echo ----------------------
echo "create root self sign cert"
openssl x509 -req -in root-req.csr -out RootCA.crt -sha1 -signkey root-key.key -days -text -extfile openssl.cnf -extensions v3_ca

  2. 创建中级证书(利用RootCA私钥签名)

 echo "create 2 level cert key"
openssl genrsa -des3 -out root-mid.key
echo ----------------------
echo "create 2 level cert csr"
openssl req -new -key root-mid.key -out root-mid.csr -text -subj "/CN=MidCA"
echo ----------------------
echo "sign with root-crt"
openssl x509 -req -in root-mid.csr -CA RootCA.crt -CAkey root-key.key -CAcreateserial -days -out RootMid.crt -text -extfile openssl.cnf -extensions v3_ca

  3. 创建服务器证书(利用中级证书私钥签名)

  (使用openssl创建申请:openssl req -out server.csr -new -sha256 -newkey rsa:2048 -nodes -keyout server.key)

  证书申请创建:

 #在IIS中“创建证书申请”文件,拷贝到Linux系统中(假设名称为Server.csr)
openssl x509 -req -in Server.csr -CA RootMid.crt -CAkey root-mid.key -CAcreateserial -days -out Server.crt -text -extfile openssl.cnf -extensions v3_ca

  4. 将根证书(RootCA.crt)、中级证书(MidCA.crt)、服务器证书(Server.crt)拷贝到Win7中

  5. 导入RootCA.crt导入到“受信任的根证书颁发机构”,MidCA.crt导入到“中级证书颁发机构” --- 都是本地计算机

  6. 执行“完成证书申请步骤”,绑定网站到SSL,并指定证书为Server.crt的友好名称

  7. 访问https://ip即可进行验证。

三、注意事项

  1. 当证书签发超过两级时,在IE中查看证书是会出现如下“因为证书路径中的证书颁发机构似乎没有颁发证书的权限或不能被用作终端实体证书,证书无效”错误,修改openssl默认配置即可(默认配置在v3_ca配置节,路径/etc/pki/tls/openssl.cnf)。

 # This is what PKIX recommends but some broken software chokes on critical
# extensions.
#basicConstraints = critical,CA:true
# So we do this instead.
#basicConstraints = CA:true
# xwliu
basicConstraints = CA:true,pathlen:

四、参考资料

关于数字证书的概念请参考以下链接:

<http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html>

关于证书与证书链的高层次理解请参考如下链接:

<http://lukejin.iteye.com/blog/587200>

其他参考资料:

<http://firefly.iteye.com/blog/674208>

<http://wenku.baidu.com/view/32409a4058fb770bf78a5577.html>

CRT转PEM:openssl x509 -in server.crt -out server.pem

PFX转PEM:openssl pkcs12 -in server.pfx -out server.pem -nodes

****************转载请注明出处******************

利用OpenSSL创建证书链并应用于IIS7的更多相关文章

  1. 利用openssl管理证书及SSL编程第1部分: openssl证书管理

    利用openssl管理证书及SSL编程第1部分 参考:1) 利用openssl创建一个简单的CAhttp://www.cppblog.com/flyonok/archive/2010/10/30/13 ...

  2. [转帖]用 OpenSSL 创建可以用于 https 的证书

    用 OpenSSL 创建可以用于 https 的证书 开会时 说到了安全问题 就简单鼓捣了一下 以后还是用nginx 转发比较好一些. https://blog.csdn.net/joyous/art ...

  3. 使用OpenSSL创建自己的CA root certificate

    在密码学中,CA(Certificate Authority,认证机构)是指一个被多个用户信任的机构,该机构能够创建和指派公钥证书. 为规范起见,我们先介绍本文可能涉及的术语, asymmetric ...

  4. OpenSSL - 利用OpenSSL自签证书和CA颁发证书

    秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥. openssl genrsa -out private.key 1024/2038                     ( ...

  5. 利用openssl构建根证书-服务器证书-客户证书

    利用openssl构建根证书-服务器证书-客户证书 OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 一.构建根证书 1.构建根证书前,需要构建随机数文件(.rand) ...

  6. SSD固态盘应用于Ceph集群的四种典型使用场景

    在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化.云化的关键指标之一.传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利 ...

  7. linux以下C 利用openssl的AES库加密,解密

    OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是所有支持或者是部分支持. 返回值:"aes(full)" ...

  8. 利用openssl自建CA体系

    使用 OpenSSL 创建私有 CA:1 根证书 使用 OpenSSL 创建私有 CA:2 中间证书 使用 OpenSSL 创建私有 CA:3 用户证书 今天跟着上面的三部曲,做了一下openssl的 ...

  9. 利用Oracle创建表空间和用户

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...

随机推荐

  1. JS里的CSS函数

    <title>无标题文档</title> <script> function css(obj,name,value){ if(arguments.length==2 ...

  2. java面向对象_接口

    java接口 interface,是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类,编写接口的方式和类很相似,但 ...

  3. Chapter 1 First Sight——23

    I stared because their faces, so different, so similar, were all devastatingly, inhumanly beautiful. ...

  4. ural1424 Minibus

    Minibus Time limit: 1.0 secondMemory limit: 64 MB Background Minibus driver Sergey A. Greedson has b ...

  5. OpenGL学习--------颜色的选择

    OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式.无论哪种颜色模式,计算机都必须为每一个像素保存一些数据.不同的是,RGBA模式中,数据直接就代表了颜色:而颜色索引模式中,数据代表的是 ...

  6. HTML之禁止输入文本

    一个文本框,禁止输入文本有2个方式,一个是利用readonly ,一个是利用 disabled. 那么两者虽然目的都可以达到,但是从表现上来看disabled会显得更加的直观,为什么这么说. 请看截图 ...

  7. HDU 5547 暴力

    Sudoku Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  8. (中等) CF 585D Lizard Era: Beginning,中途相遇。

    In the game Lizard Era: Beginning the protagonist will travel with three companions: Lynn, Meliana a ...

  9. bootstrap建立响应式网站——tab选项卡

    1.bootstrap给我们提供了标签页 细细看了一下bootstrap的标签页源码,对tab选项卡有了更深的理解.其实说来也简单,以前自己写js和css时没有意识到整体的划分.就是分为两部分:一部分 ...

  10. Sublime 2 配置

    在队友的推荐下,爱上了这款神一样的文本编辑器,熟练之后编辑效率真心是大幅提升啊. 一.Package Control Sublime拥有很强大的插件功能,而自带的缺少个管理工具,这个包可以用来很方便地 ...