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

OPENSSL 制作 Ikev2证书的更多相关文章

  1. openssl 自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书

    server { listen 80; listen 443 ssl; server_name ~^((cloud)|(demo-cloud)|(demo2-cloud)|(approval1))(( ...

  2. openssl生成ssl证书

    openssl生成ssl证书 x509证书一般会用到三类文,key,csr,crt. Key 是私用密钥openssl格,通常是rsa算法. Csr 是证书请求文件,用于申请证书.在制作csr文件的时 ...

  3. 制作SSL证书

    上一节介绍了OpenSSL的目录结构,本节介绍一下SSL证书的制作. OpenSSL安装后建议把其中的bin目录添加到系统环境变量中,方便以后操作. 建立一个新的目录SSL专门用来制作证书. 建立证书 ...

  4. 转 openssl 建立服务器证书

    openssl 建立服务器证书 ##  1,建立目录和文件     set path=D:/openssl/bin     D:     cd D:/openssl/conf/     ren ope ...

  5. openssl制作双向认证经过验证可行

    openssl制作双向认证经过验证可行 http://www.360doc.com/content/12/0524/15/2150778_213390447.shtml 2012-05-24  履历馆 ...

  6. makecert 制作数字证书 给DLL加一个数字签名

    声明:文章整理自互联网 我仅需要给dll添加(替换)一个签名,所以我只看了第一步和第三步,其余的部分我没有测试,不能保证内容的是否正确. 看了很多关于DLL加签名的教程 大多是错误的 完全无法正常走下 ...

  7. 简单的制作ssl证书,并在nginx和IIS中使用

    2020年最后一篇博文收官,提前祝各位园友新年快乐 现在的后端开发,动不动就是需要https,或者说是需要ssl证书,既然没有正版的证书,那么我们只能自己制作ssl的证书了. 说明:证书的制作采用的是 ...

  8. 制作SM2证书

    前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密 ...

  9. linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改

    原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...

随机推荐

  1. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  2. ArcGIS api for javascript——用缓存区查询地图

    描述 本例展示了如何在另外一个任务里使用一个任务的结果.单击地图查看被单击的点的1公里范围内的缓存(如果需要可以修改这个默认的缓存距离).也可以看缓存区的这些点的人口普查街区信息.单击一个点查看更多的 ...

  3. typedef 与 set_new_handler的几种写法

    可以用Command模式.函数对象来代替函数指针,获得以下的好处: 1. 可以封装数据 2. 可以通过虚拟成员获得函数的多态性 3. 可以处理类层次结果,将Command与Prototype模式相结合 ...

  4. Android布局文件的载入过程分析:Activity.setContentView()源代码分析

    大家都知道在Activity的onCreate()中调用Activity.setContent()方法能够载入布局文件以设置该Activity的显示界面.本文将从setContentView()的源代 ...

  5. 算法导论————KMP

    [例题传送门:caioj1177] KMP模版:子串是否出现 [题意]有两个字符串SA和SB,SA是母串,SB是子串,问子串SB是否在母串SA中出现过.如果出现过输出第一次出现的起始位置和结束位置,否 ...

  6. 27.C语言宽字符操作

    #include <locale.h> setlocale(LC_ALL, "zh-CN"); wchar_t wch = L'我'; putwchar(wch); # ...

  7. 学习推荐《从Excel到Python数据分析进阶指南》高清中文版PDF

    Excel是数据分析中最常用的工具,本书通过Python与Excel的功能对比介绍如何使用Python通过函数式编程完成Excel中的数据处理及分析工作.在Python中pandas库用于数据处理,我 ...

  8. Html学习总结(1)——理解Html的head

    HTML文档的head部分,通常包括指定页面标题,为搜索引擎提供关于页面本身的信息,加载样式表,以及加载JavaScript文件(出于性能考虑,多数时候放在页面底部</body>标签结束前 ...

  9. Activiti工作流(3):activiti核心API

    ProcessEngine 说明: 1)     在Activiti中最核心的类,其他的类都是由他而来. 2) 产生方式:ProcessEngine defaultProcessEngine = Pr ...

  10. bzoj1084【SCOI2005】最大子矩阵

    1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1946  Solved: 970 [Submit][id ...