windows2008 R2 下apache 创建ssl二级证书

  • 写在前面的话

    1.就是一些工作tips 专门的术语是一个坑 也许以后会填
    2.其实ssl协议的证书看你怎么理解了 服务器 客服端 CA认证的 或者你理解成CA认证 然后一级 二级证书这么也可以
    3.我创建的思路就是用CA局认证的一级证书 再去签署二级的请求证书申请 然后创建二级证书 最后对二级的密钥进行的解密 这么干嘛为毛这么干 我记得是win32下不支持加密的密钥 不过我用的是64位的机子 反正最后这么干成功了 至于为什么 以后再说吧

  • 准备程序 注意64位和32位

     Apache_HTTP_Server_2.4.12_.zip 附带openssl模块
     apache-tomcat-7.0.64
     jdk-7u79-windows
     OpenLDAPforWindows_x64
     Win64OpenSSL-1_0_0s
     ActivePerl_5.16.2.3010812913
    
  • 构建CA局证明书

     构建CA局认证的环境  即私钥和证明书(这个构建的是证明书 不是证明书请求书)
     因为是在openssl模块下创建的所以是以下的内容列表
    
    Country Name (2 letter code)
    "State or Province Name(full name)"
    Locality Name (eg, city)
    Organization Name(eg, company)
    Organization Unit Name
    "Common Name
     (eg, your name or 
     your server's hostname)"
    Email Address
    

    输入命令
    openssl req -new -x509 -newkey rsa:2048 -keyout {CA私钥} -out {CA证明书} -days {有效期}

2048是用多少位的字符加密 注意这里有问题 如果用软件自动创建相关的私钥和证书请求书 要注意使用多少位的字符加密的 因为有时候会出现countryName,stateOrProvinceName的不匹配问题

这个明明输入的都是一样的字符依旧出现请求签署时请求书和CA的证明书签名时内容不匹配的错误 针对这个错误
如下处理

# For the CA policy
[ policy_match ]
countryName             = match
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
...

如果依旧有错误 那么就在linnux下一个代码一个资料老老实实的敲出来吧 然后从虚拟机从拖出来 然后在一个自定义的构建文件用目录创建下列文档和文件 如果不会 还是在linux创建了拖出来吧 这是用来签署一级证书用的环境

mkdir -p demoCA/newcerts
touch demoCA/index.txt
echo 01 > demoCA/serial
echo 01 > demoCA/crlnumber
  • 签署一级证书

    CA局的证明书构建完成之后用软件构建一级证书的私钥和证明书请求书

    通常证明书请求书是以下内容

        Country
        State/Province()
        City/Location()
        Organization()
        Organizational Unit()
        Common Name()
    

    需要注意的是请求书和CA局的证书签名时要进行内容匹配的内容的一致性 Commone Name一定要是你要授予证书的服务器域名或主机名

    openssl ca -in {一级证明书请求书} -keyfile {CA私钥} -cert {CA証明書} -out {一级証明書}

    注意ca私钥是key后缀的 ca证明书是CRT结尾的 证明书自然也是crt后缀的

  • 签署二级证书

    将一级证书的环境复制一份 然后创建二级证书的私钥和证明书请求书

    openssl ca -in {二级证明书请求书} -keyfile {一级私钥} -cert {一级証明書} -out {二级証明書}

  • 去除密码

    openssl rsa -in {二级私钥} -out {解密后的私钥}

  • 需要注意的配置问题

    Define SRVROOT “/Apache24”
    ServerRoot “${SRVROOT}”
    定义的是apache安装的根目录

    Include conf/extra/httpd-ssl.conf 此处需要激活

因为2.4的版本已经默认激活了ssl的模块 所以那步不用

对于激活上述步骤后无法开启apache  很简单 因为主机名不对应

httpd.conf
ServerName auth-server:80
httpd-ssl.conf
ServerName auth-server:443
Listen auth-server:443

这里对应的是二级证书请求书里面的COMMOM NAME 这个就是请求给那个域名进行签名的servername

最后再hosts中设置 如下例子

IP 域名 主机名

127.0.0.1   auth-server.com。cn auth-server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值