美文网首页
mac上apache创建服务器与iOS的双向认证证书

mac上apache创建服务器与iOS的双向认证证书

作者: ZLEIi | 来源:发表于2017-03-24 12:56 被阅读0次

    // 1、准备工作

    // 先在随便一个目录,创建以下几个子目录:
    // private
    // certificates
    // 创建CA私钥,提示输入密码:123456
    openssl genrsa -aes256 -out private/ca.key.pem 2048

    // 创建CA签名请求,生成的签名请求文件,是ca.csr,记得要把CN *.myhost改成自己服务器的域名,以下myhost所有都要改 ,提示输入密码:123456
    openssl req -new -key private/ca.key.pem -out private/ca.csr

    Country Name : CN
    State or Province Name :你的省份
    Locality Name : 你的城市
    Organization Name : nn 单位
    Organizational Unit Name :部门
    Common Name : 你的域名:例如192.168.1.122
    Email Address : 你的邮箱
    A challenge password : 123456
    An optional company name : 你的公司名称

    • Enter pass phrase for app.key: 123456

    // 自己签发CA根证书,提示输入密码:123456
    // 生成的ca.cer,就是最终的根证书了!这个文件非常重要,因为后续的服务端证书、客户端证书,都是用这个CA签发的,也要把它分发给客户,让他们导入到自己的浏览器或者系统中
    openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey private/ca.key.pem -in private/ca.csr -out certificates/ca.cer

    // 把根证书从PEM编码转为PKCS编码 提示输入密码:123456
    // 这步其实不是必选的,但是前面说过,JAVA环境是不能直接用PEM编码的证书的,很多浏览器也不行,所以有时候也需要转一下编码
    openssl pkcs12 -export -cacerts -inkey private/ca.key.pem -in certificates/ca.cer -out certificates/ca.p12

    // 创建服务端私钥 提示输入密码:123456
    openssl genrsa -aes256 -out private/server.key.pem 2048

    // 创建服务端证书签发请求
    // 和ca.csr的区别在于,这里的CN不是*.myhost.com,而是www.myhost.com,因为我现在是在为www.myhost.com申请证书
    openssl req -new -key private/server.key.pem -out private/server.csr

    Country Name : CN
    State or Province Name :你的省份
    Locality Name : 你的城市
    Organization Name : nn 单位
    Organizational Unit Name :部门
    Common Name : 你的域名:例如192.168.1.122
    Email Address : 你的邮箱
    A challenge password : 123456
    An optional company name : 你的公司名称

    • Enter pass phrase for app.key: 123456

    // 利用CA根证书,签发服务端证书 提示输入密码:123456
    openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certificates/ca.cer -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in private/server.csr -out certificates/server.cer

    //测试单向认证
    //把server.key.pem和server.cer拷贝到服务器配置目录下例如:/usr/local/etc/apache2/2.4/extra/ssl/certificates/,然后重新启动httpd,会要求输入一个密码

    // 双向认证
    // 创建客户端私钥,提示输入密码:123456
    openssl genrsa -aes256 -out private/client.key.pem 2048

    // 创建客户端证书签发请求
    openssl req -new -key private/client.key.pem -out private/client.csr

    Country Name : CN
    State or Province Name :你的省份
    Locality Name : 你的城市
    Organization Name : 你的单位
    Organizational Unit Name :部门
    Common Name : 你的域名:例如192.168.1.122
    Email Address : 你的邮箱
    A challenge password : 123456
    An optional company name : 你的公司名称

    • Enter pass phrase for app.key: 123456

    // 用CA根证书,签发客户端证书
    openssl x509 -req -days 3650 -sha1 -extensions v3_req -CA certificates/ca.cer -CAkey private/ca.key.pem -CAserial ca.srl -CAcreateserial -in private/client.csr -out certificates/client.cer

    // 把客户端证书转换成p12格式
    openssl pkcs12 -export -clcerts -inkey private/client.key.pem -in certificates/client.cer -out certificates/client.p12

    // ----------------------------------------------------------------------------------------------------
    // iOS不识别server.cer,所以要把server.cer转换编码格式为der编码
    openssl x509 -in server.cer -out server_client.cer -outform der

    // httpd-ssl添加的配置
    SSLCertificateFile "/usr/local/etc/apache2/2.4/extra/ssl/certificates/server.cer"
    SSLCertificateKeyFile "/usr/local/etc/apache2/2.4/extra/ssl/private/server.key.pem"
    SSLCACertificateFile "/usr/local/etc/apache2/2.4/extra/ssl/certificates/ca.cer"
    SSLVerifyClient require
    SSLVerifyDepth 10

    相关文章

      网友评论

          本文标题:mac上apache创建服务器与iOS的双向认证证书

          本文链接:https://www.haomeiwen.com/subject/datfottx.html