发表者:admin分类:Linux2017-06-03 22:47:40浏览:1645次评论:0次,我来说两句

使用OpenSSL创建自签名CA证书链


受信任的CA都是那些具有公信力机构创建的,自签名的CA本质是与那些受信任的CA没有区别,只是因为自签名的CA并没有默认添加在浏览器或操作系统的信任列表里。


1.生成自签署CA

    openssl req -new -x509 -days 3650 -keyout ca.key -out ca.crt -config openssl.cnf

    #需要填写一些信息,执行完后,将生成ca.key和ca.crt文件。


2.生成server.key

    openssl genrsa -out server.key 2048


3.生成证书签名请求

    openssl req -new -key server.key -out server.csr -config openssl.cnf

    #Common Name如有多个提示输入,每次填写一个,如果没有那么多,可以直接回车


4.使用自签署的CA,签署server.scr

    openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
    #输入CA的密码,一直按y就可以了

    #server.crt server.key就是web服务器中使用的文件。


关于NGINX 双向认证


如果要做NGINX客户端证书验证的话,重复2、3、4,并执行下面命令生成个人证书:

    openssl  pkcs12 -export -inkey server.key -in server.crt -out  server.p12


将个人证书导入pc,同时在nginx ssl基础上增加设置:

    ssl_verify_client on;
    ssl_client_certificate ca.crt;


关于多域名验证支持


通过修改配置模板,修改 openssl.cnf:

将文件中原来的

commonName                       = Common Name (eg, your name or your server\'s hostname)
commonName_max              = 64

修改为

0.commonName                    = Common Name (eg, your name or your server\'s hostname)
0.commonName_max           = 64

就是在前面加了个序号,有多少序号,便会形成多少次提示输入,前面的序号依次递增即可:

0.commonName                    = Common Name (eg, your name or your server\'s hostname)
0.commonName_max           = 64
1.commonName                    = other  Common Name
1.commonNAme_max           = 64

......

修改后,在生成证书时,便会多次提示输入Common Name,每次输入一个域名即可。



名字:

个人主页地址:

E-mail:

评论列表