手把手教你apache設定https

  • 手把手教你apache設定https已关闭评论
  • 135 views
  • A+
所属分类:Linux

網上有很多這方面的教程   但是都不太容易看懂 且都雜亂無章   到最後   不知道都說的些什麼。遇到一些錯誤大多都是相互抄襲。

今天我也寫一寫這方面的內容 希望能對你真正有用         

httpshttp+openssl構成   實現加密傳輸

簡單地說 預設使用者不輸入httphttps   會自動跳轉到https。就需要配置兩個虛擬機。一個80埠,一個443

先下載各套件吧

下載apr: wget -c http://mirrors.advancedhosters.com/apache//apr/apr-1.6.5.tar.gz -P /opt

下載apr-util:wget -c http://mirrors.advancedhosters.com/apache//apr/apr-util-1.6.1.tar.gz -P /opt

下載apache2.4wget -c http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.37.tar.gz -P /opt

 安裝關聯套件:yum install -y gcc gcc-c++ openssl opens-devel openldap openldap-devel

進入到/opt

cd  /   opt

拆包apr 並進入apr-1.65資料夾進行準備預編譯

tar apr-1.6.5.tar.gz

cd apr-1.65

必須做這一步 否則無法正常預編譯

vim   configure

查找RM='$RM'   將其修改為   RM='$RM -f'   並存儲

./configure --prefix=/usr/local/apr

編譯並安裝:make && make instal切換到上級資料夾 拆包   apr-util-1.6.1.tar.gz

cd ../;tar -zxf   apr-util-1.6.1.tar.gz

進入到apr-util-1.6.1資料夾

cd apr-util-1.6.1

預編譯:     ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

編譯並安裝   make && make install

切換到上級資料夾 拆包 httpd-2.4.37.tar.gz

cd ../;tar -zxf httpd-2.4.37.tar.gz

進入到httpd-2.4.37資料夾

cd httpd-2.4.37

預編譯apache2.4

./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite --enable-ssl --with-mpm=prefork --with-proxy --with-headers --with-expires --enable-session --with-ldap

注意:如果你採用的是 yum install -y  apr apr-util apr-devel apr-util-devel 安裝的   apache的編譯參數選項不要添加 --with-apr --with-apr-util     。一般情況下 通過yum 安裝 apr apr-util相關套件是沒有問題的。如果啟動apache遇到apr-util相關的錯誤,你該考慮編譯安裝aprapr-util了。如果你在編譯apr-util遇到了一些錯誤,你也別到處找答案了 ,你直接降低一個版本使用1.5.x的就可以

編譯並安裝程式

make && make install

生成cert資料夾

mkdir /usr/local/apache2.4/conf/cert

用於存放你申請的SSL證書   SSL證書需要驗證你的功能變數名稱。參照阿裡雲申請SSL

不論你是哪裡買的功能變數名稱你都可以在阿裡雲申請免費版的簽證   。最後將 證書上傳到   cert資料夾裡

生成80   443埠的虛擬機器範本 wenxuan.conf  

vim   /usr/local/apache2.4/conf/extra/wenxuan.conf

原始碼如下:

#####這是80埠虛擬機器開始######

<VirtualHost *:80>

#綁定的網站功能變數名稱

           ServerName wenxuan.503e.net

#綁定的網站別名

           ServerAlias wenxuan.503e.net

#開啟重寫引擎     Rewite是重寫的意思 Engine是引擎的意思

         RewriteEngine On

#編寫 重寫規則   同樣 Rewrite是重寫的意思 Rule是規則的意思 ^以什麼開始     ^(.*)$這部分是正則   前期不理解 先固定記下來吧   這部分指的是 功能變數名稱後面帶的路徑      

           RewriteRule ^(.*)$ https://wenxuan.503e.net$1 [R=301,L]

      </VirtualHost>

#####這是80埠虛擬機器範本結束

####監聽埠443

Listen 443

####這是443埠的虛擬機器範本開始######

<VirtualHost *:443>

#綁定的網站的功能變數名稱

         ServerName wenxuan.503e.net

#網站程式的存放路徑

         DocumentRoot "/usr/local/apache2.4/htdocs"

         CustomLog   "/usr/local/apache2.4/logs/wenxuan.log" combined

         ErrorLog     "/usr/local/apache2.4/logs/wenxuan_error.log"

#開啟SSL引擎

       SSLEngine On

#Certificate是證書的意思     說清楚三個檔的存放路徑即可

       SSLCertificateFile "/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net_public.crt"

       SSLCertificateKeyFile "/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net.key"

       SSLCertificateChainFile "/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net_chain.crt"

</VirtualHost>

####這是443埠的虛擬機器範本結束######

最終效果圖 圖示如下:

手把手教你apache設定https

備份httpd.conf  

cp /usr/local/apache2.4/conf/httpd.conf{,.bak}

使用vivim編輯   /usr/local/apache2.4/conf/httpd.conf

引用你編寫的範本檔

Include conf/extra/wenxuan.conf

添加一行 ServerName localhost:80  

找到兩個關鍵字   分別是mod_ssl   mod_rewrite 。怎麼找   vim httpd.conf   直接拿輸入 /輸入關鍵字   比如 /mod_ssl   回車即可找到 將前面的#刪掉。以同樣的方式找到mod_rewrite 刪掉前面的#

LoadModule ssl_module modules/mod_ssl.so

LoadModule rewrite_module modules/mod_rewrite.so

最後存儲。

最後 如何知道設定檔沒問題?

/usr/local/apache2.4/bin/httpd -t

/usr/local/apache2.4/bin/apachectl -t

如果提示

Syntax OK表示沒問題。

最後啟動apache :

/usr/local/apache2.4/bin/httpd -k start

/usr/local/apache2.4/bin/apachectl start

在流覽器輸入你綁定的功能變數名稱 即可看到效果:

圖示如下是文萱申請了兩個功能變數名稱證書。

手把手教你apache設定https

手把手教你apache設定https

打赏
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin