1. 程式人生 > >LAMP環境由http轉到https

LAMP環境由http轉到https

1、開啟 apache 安裝目錄下 conf 目錄中的 httpd.conf 檔案,找到

#LoadModule ssl_module modules/mod_ssl.so

(如果找不到請確認是否編譯過 openssl 外掛)

#Include conf/extra/httpd_ssl.conf

刪除行首的配置語句註釋符號“#”
儲存退出。

2、開啟 apache 安裝目錄下 conf/extra 目錄中的 httpd-ssl.conf 檔案
(註釋:yum 安裝配置目錄:conf.d/ssl.conf
ubuntu/apache2 安裝目錄:conf/sites-enabled/*.conf )
在配置檔案中查詢以下配置語句:
a. 新增 SSL 協議支援語句,關閉不安全的協議和加密套件
SSLProtocol all -SSLv2 -SSLv3
b.修改加密套件如下
SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL
c.將伺服器證書公鑰配置到該路徑下(在 conf 目錄下建立 ssl 目錄,將 for Apache 裡面的三個證書檔案拷貝到 ssl 目錄下)
SSLCertificateFile conf/ssl/test.wosign.com.crt (證書公鑰)
d.將伺服器證書私鑰配置到該路徑下
SSLCertificateKeyFile conf/ssl/test.wosign.com.key (證書私鑰)
e.將伺服器證書鏈配置到該路徑下

#SSLCertificateChainFile conf/ssl/1_root_bundle.crt(證書鏈)刪除行首的“#”號註釋符

儲存退出,並重啟 Apache。

3、進入 Apache 安裝目錄下的 bin 目錄,執行如下命令
./apachectl -k stop
./apachectl -k start
或者直接 service httpd restart
備註(正式環境可能用到的問題及命令):
一、網頁中的不安全因素
SSL證書對網站程式碼的安全性要求很高,但許多使用者網站中卻使用了大量的外鏈,而這些外部的資源(圖片或js)正是不安全的因素所在,因此使用者在部署SSL證書後需要對網站程式碼進行調整,這樣才能保障網站的安全;在部署SSL證書後,通過https訪問網站時,有些網站會出現以下提示,例:
1.IE瀏覽器底部會提示“只顯示安全內容”。
這裡寫圖片描述


2.谷歌瀏覽器中鎖型標識會顯示異常,並提示:與www.yourdomain.com的連線採用128/256位加密技術。但是,此頁面中包含其他不安全的資源。他人能在傳輸過程中檢視這些資源,攻擊者也可以進行修改,從而改變網頁的外觀。
這裡寫圖片描述
3.火狐瀏覽器底部會提示“此網站的連線的安全,因為包含了不安全的因素”。
這裡寫圖片描述

二、解決網站”不安全因素“的方法:
彈出這些不安全因素的提示是由於網站頁面上包含混合內容導致的,也就是說,網站頁面上包含 http:// 的資源 也包含 https:// 的資源。通常這種情況是需要在網站頁面上做一些調整才能去除提示。以下是常用的解決方法:
例如:在網站頁面檔案中,包含了其他網站非https的資源。(可以通過谷歌瀏覽器按F12鍵檢視)
這裡寫圖片描述


可以把該外鏈複製到URL中,並通過在http後添加個”s“訪問,測試此外鏈是否支援https協議的連結。
(1)如果可以訪問,直接在程式碼中修改http為https的連結。
這裡寫圖片描述
(2)如果不可以訪問,則可以下載該資源到本地伺服器上,並修改資源路徑,指向到伺服器上,並使用相對路徑如 或者完整的 https 路徑https://***/image/button_111.gif>
這裡寫圖片描述
網站出現不安全因素的提示時,請通過以上方法對程式碼進行調整,充分保障網站的信任。

http網頁自動跳轉到https網頁的辦法
首先在網站根目錄下建立.htaccess檔案,如果目錄下已經有.htaccess檔案,則用vi或者其他編輯器開啟,在最下面新增寫入如下語句即可

RewriteEngine on
RewriteBase / #我這行是沒有配置
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

在linux下批量替換資料夾下的檔案內容的命令

sed -i "s/old_string/new_string/g" `grep find_string -rl   find_path`