免費ssl證書配置

最近上雲,將個人網站漫島的代碼從阿里雲的虛擬主機遷移到阿里雲的ECS服務器,中間給網站配置ssl證書的時候遇到一些麻煩,參照網上的方法均不起任何作用,可能我這個問題比較個性,自己花了兩天時間才解決,首先看下常規的SSL證書配置方案:
1.在Apache的安裝目錄下創建cert目錄,並且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創建的CSR文件,請將對應的私鑰文件放到cert目錄下並且命名爲a.key;
2.打開 apache 安裝目錄下 conf 目錄中的 httpd.conf 文件,找到以下內容並去掉“#”。

#LoadModule ssl_module modules/mod_ssl.so (如果找不到請確認是否編譯過 openssl 插件)
#Include conf/extra/httpd-ssl.conf(刪除行首的配置語句註釋符號“#”,保存後退出)

3.打開 apache 安裝目錄下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,與操作系統及安裝方式有關), 在配置文件中查找以下配置語句:

# 添加 SSL 協議支持協議,去掉不安全的協議
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 證書公鑰配置
SSLCertificateFile cert/a_public.crt
# 證書私鑰配置
SSLCertificateKeyFile cert/a.key
# 證書鏈配置,如果該屬性開頭有 '#'字符,請刪除掉
SSLCertificateChainFile cert/a_chain.crt

4.重啓 Apache
以上是常規解決方案,網上大部分指導操作都是這樣的,這並不沒有解決我的問題,當我按照這樣配置後,apache無法啓動,錯誤日誌顯示Parent process exited abruptly. Child process is ending(父進程突然退出,子進程正在結束!)
以上錯誤的原因無非是配置文件出錯,用代碼註釋法很容易排查出問題出在第二步#Include conf/extra/httpd-ssl.conf(刪除行首的配置語句註釋符號“#”,保存後退出),然而問題雖然很明確,但是改了很久也沒能解決,最後拋棄了這種方案,下面是我的解決方案。

  • 1.打開 Apache 安裝目錄下 conf 目錄中的 httpd.conf 文件,找到以下內容並去掉前面的“#”註釋符,使得SSL模塊生效。
  • 2.不解開#Include conf/extra/httpd-ssl.conf的註釋,引用我們手動寫的一個簡單配置文件。即增加一條引用:【Include conf/vhostssl.conf】,如下圖所示:
    在這裏插入圖片描述
    vhostssl.conf內容如下,自己替換相應內容:
Listen xml
<VirtualHost *:443>
    DocumentRoot "C:\projects\PhpStudy20180211\PHPTutorial\WWW"
    ServerName www.iscoser.com
    ServerAlias iscoser.com
    SSLEngine on
    SSLProtocol TLSv1 TLSv1.1 TLSv1.2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
    SSLCertificateFile "C:\projects\PhpStudy20180211\PHPTutorial\Apache\cert\xx.com_public.crt"(證書公鑰)
    SSLCertificateKeyFile "C:\projects\PhpStudy20180211\PHPTutorial\Apache\cert\xx.com.key"(證書私鑰)
    SSLCertificateChainFile "C:\projects\PhpStudy20180211\PHPTutorial\Apache\cert\xx_chain.crt"(證書鏈)
  <Directory "C:\projects\PhpStudy20180211\PHPTutorial\WWW">
      Options +Indexes +FollowSymLinks +ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

3.重啓apache(注意443端口是否被防火牆攔截或被佔用);
經歷以上步驟,我終於解決了ssl證書的配置問題,網上大部分的博客也好或者是其他的文章也好,套路都差不多,所以我在這裏提供一個額外的思路供大家參考,另外說一句,我用的是lamp的集成環境。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章