OPENSSL 制作 Ikev2证书
在一个 VPS 上配置 IKEV2 VPN 服务器时,用 OPENSSL 制作了所需的数字证书,奇怪的怎么弄都无法连接服务器,一直提示 “IKE_SA 链接超时” 。最后实在没辙了,怀疑到是不是证书有问题,因为平时都是用 ipsec pki 生成证书的。于是按照网上的教程用 ipsec pki 制作证书,结果很顺利的登入服务器。
一、仔细对比了 ipsec pki 和 OPENSSL 签发的证书,区别还是有的:
1. 在证书的常规项里面,ipsec pki 的证书明确指出 “保证远程计算机的身份” 和 “允许 Internet 上的安全通信”
2. 在证书扩展项里面,ipsec pki 的证书指出用于 “服务器身份验证” 和 “IP 安全 IKE 中级” ,同时使用了 “使用者可选名称”,内容为 DNS Name
二、再对比了制作证书的指令:
1. 在建立根证书的时两者基本差别不大,
2. 在签发证书时,ipsec pki 使用了 san 扩展和几个 flag
ipsec pki 签发 server 证书
ipsec pki --gen --type rsa --size 4096 --outform pem > vpnkey.pem ipsec pki --pub --in vpnkey.pem --type rsa | ipsec pki --issue --lifetime 1825 --cacert ca.pem --cakey cakey.pem \ --dn "C=US, O=VPN Server, CN=vpn-do.yourshell.info" \ --san vpn-do.yourshell.info --flag serverAuth --flag ikeIntermediate \ --outform pem > vpn.pem
Ikev2证书 需要支持 IKE 协议(因特网密钥交换协议) ,同时支持“使用者可选名称“(SAN 扩展,多域名证书)以提高设备的兼容性
三、在谷歌上搜索一番,修改 openssl.cnf 如下
在 [ new_oids ] 配置段中加入
ikeIntermediate = 1.3.6.1.5.5.8.2.2
在 [ req ] 配置段中加入
utf8 = yes
修改 [ usr_cert ] 配置段
basicConstraints=CA:true
nsCertType = server, client, email, objsign
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth,clientAuth,codeSigning,emailProtection, ikeIntermediate
修改 [ v3_req ] 配置段
# Extensions to add to a certificate request
extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection, ikeIntermediate
basicConstraints = CA:true
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = 域名1
DNS.2 = 域名2
四、最后在 签发证书的时,使用 -extensions v3_req 参数
openssl ca -extensions v3_req -in user_csr.pem -out user_cert.crt -days 3650
参考地址
OpenSSL SAN 证书 http://liaoph.com/openssl-san/
SSLConfig http://wiki.cacert.org/Roots/OpenSSLConfig
最新文章
- JQuery可见性过滤选择器:hidden无法获取通过visibility:hidden样式隐藏的元素-遁地龙卷风
- FK JavaScript:ArcGIS JavaScript类库加载不成功而导致的程序异常
- c++的用处
- 一直纠结中的";底层模板";含义(借鉴)
- SQLlite(WebSQL)如何排序并分页查询(SQLlite语法)
- linux中vi编辑器
- 在iOS上present一个半透明的viewController
- POJ 3286 How many 0&;#39;s?
- C#字符串常见操作总结
- JMockit使用总结
- JAVA 局部变量表
- Jquery跨域读取城市天气预报信息
- hdu 5430(几何)
- ios7内购、Game Center 实现 in-App Purchases &; Game Center
- asp.net core 系列之并发冲突
- MassTransit&;Sagas分布式服务开发ppt分享
- PHP中的DateTime类
- curl安装和使用
- WordPress版微信小程序2.2.0版发布
- Linux mmc framework2:基本组件之mmc
热门文章
- 第四讲 Yang-Mills方程与Maxwell方程
- 【BZOJ 1047】[HAOI2007]理想的正方形
- 洛谷—— P2934 [USACO09JAN]安全出行Safe Travel || COGS ——279|| BZOJ——1576
- 国庆 day 6 下午
- 八 rowkey设计 几种方法
- [Recompose] Make Reusable React Props Streams with Lenses
- HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)
- Cocos2d-x第三方类库不支持arm64的问题解决(64位架构)
- php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等
- Android GridView LruCache