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

發佈了49 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章