利用OpenSSL创建证书链并应用于IIS7
一、系统环境说明
- 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的更多相关文章
- 利用openssl管理证书及SSL编程第1部分: openssl证书管理
利用openssl管理证书及SSL编程第1部分 参考:1) 利用openssl创建一个简单的CAhttp://www.cppblog.com/flyonok/archive/2010/10/30/13 ...
- [转帖]用 OpenSSL 创建可以用于 https 的证书
用 OpenSSL 创建可以用于 https 的证书 开会时 说到了安全问题 就简单鼓捣了一下 以后还是用nginx 转发比较好一些. https://blog.csdn.net/joyous/art ...
- 使用OpenSSL创建自己的CA root certificate
在密码学中,CA(Certificate Authority,认证机构)是指一个被多个用户信任的机构,该机构能够创建和指派公钥证书. 为规范起见,我们先介绍本文可能涉及的术语, asymmetric ...
- OpenSSL - 利用OpenSSL自签证书和CA颁发证书
秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥. openssl genrsa -out private.key 1024/2038 ( ...
- 利用openssl构建根证书-服务器证书-客户证书
利用openssl构建根证书-服务器证书-客户证书 OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 一.构建根证书 1.构建根证书前,需要构建随机数文件(.rand) ...
- SSD固态盘应用于Ceph集群的四种典型使用场景
在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化.云化的关键指标之一.传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利 ...
- linux以下C 利用openssl的AES库加密,解密
OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是所有支持或者是部分支持. 返回值:"aes(full)" ...
- 利用openssl自建CA体系
使用 OpenSSL 创建私有 CA:1 根证书 使用 OpenSSL 创建私有 CA:2 中间证书 使用 OpenSSL 创建私有 CA:3 用户证书 今天跟着上面的三部曲,做了一下openssl的 ...
- 利用Oracle创建表空间和用户
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...
随机推荐
- java数据结构之有序表查找
这篇文章是关于有序表的查找,主要包括了顺序查找的优化用法.折半查找.插值查找.斐波那契查找: 顺序优化查找:效率极为底下,但是算法简单,适用于小型数据查找: 折半查找:又称为二分查找,它是从查找表的中 ...
- hdu 1535 Invitation Cards(SPFA)
Invitation Cards Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/65536K (Java/Other) T ...
- Node.js学习 - CallBack Function
Node.js异步编程的直接体现就是回调,Node使用了大量的回调函数,其所有的API都支持回调. 阻塞代码实例(同步) var fs = require("fs"); var d ...
- FFmpeg的Android平台移植—编译篇
摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: ubuntu-12.04.5 android-ndk64-r10-linux-x86_64. ...
- css float left right 中间空间城数据无法显示
css float left right 中间空间城数据无法显示 是由于设定了width具体值太小造成,简单用%值或不设置.
- emacs redo
c / c/ cg c/ cg c/ tramp: /sudo::/usr/
- xmppserver
http://highscalability.com/blog/2014/1/6/how-hipchat-stores-and-indexes-billions-of-messages-using-e ...
- android app开发
android 中文文档: http://www.android-doc.com/training/index.html 二维码在线自动生成.http://www.liantu.com/
- 12C 连接方式和 Oracle Easy Connect Naming method
1.12C 连接方式 PDB is not an instance, so using SID in the connection string will not work. When the dat ...
- 转 windows 下 Oracle 导出表结构
分析Oracle下导出某用户所有表的方法 可能很多使用Oracle的客户都会遇到想把某用户所有表导出的情况,本文就提供这样一个方法帮你轻松解决这个问题. 首先在sqlplus下以该用户登录到Ora ...