3分鐘搞定從申請ssl證書到域名服務器配置

HTTP和HTTPS的基本概念
HTTP:是互聯網上應用最爲普遍的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可使瀏覽器更加高效,使網絡傳輸減小。
HTTPS:是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,所以加密的詳細內容就須要SSL。
HTTPS協議的主要做用能夠分爲兩種:一種是創建一個信息安全通道,來保證數據傳輸的安全;另外一種就是確認網站的真實性

爲何要是使用https

http協議的缺點php

  1. 通訊使用明文,內容可能被竊聽(重要密碼泄露)
  2. 不驗證通訊方身份,有可能遭遇假裝(跨站點請求僞造)
  3. 沒法證實報文的完整性,有可能已遭篡改(運營商劫持)

HTTPS的優勢html

  1. 使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器
  2. HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程當中不被竊取、改變,確保數據的完整性
  3. HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增長了中間人攻擊的成本

申請ssl證書

前往freessl免費申請證書thinkphp

1.輸入域名點擊建立apache

clipboard.png

2.輸入平時本身用的郵箱,CSR選擇瀏覽器生成,而後點擊建立瀏覽器

clipboard.png

3.會生成一個DNS配置,而後咱們前往對應的所購買的域名服務商去添加一條解析規則安全

clipboard.png

4.我是在阿里雲購買的域名因此前往阿里雲控制檯找到本身購買的域名而後填寫上面的對應規則服務器

clipboard.png

5.當配置完成後,回到剛纔下發的ssl證書的網站中,點擊驗證按鈕,若是配置解析成功會出現如下界面,不然失敗,請仔細從新填寫,或者等5到10分鐘,等待解析規則生效網絡

clipboard.png

6.複製裏面的內容保存成相應文件架構

clipboard.png

Apache配置支持HTTPS的SSL證書

  1. 編輯Apache根目錄下conf/httpd.conf 文件 找到#LoadModule ssl_module/mod_ssl.so 和#Include conf/extra/httpd-ssl.conf 去掉前面的#號註釋
  2. 打開httpd-ssl.conf文件,添加一條記錄,通常在xmapp\apache\conf\extra下面app

    <VirtualHost *:443>
    
        DocumentRoot "你網站的路徑"  #如 C:\php\wwww\itnavs\blogs\blogs-itnavs
        ServerName www.blogs.itnavs.com
        ServerAlias blogs.itnavs.com
        ServerAdmin 470193837@qq.com
        ServerName itnavs.com
        SSLEngine on
        
        SSLCertificateFile "剛纔生成的ssl路徑.crt"  #如 https/itnavs/blogs/blogs_itnavs.crt
        SSLCertificateKeyFile "剛纔生成的ssl路徑.key" #如 https/itnavs/blogs/blogs_itnavs.key
        SSLCertificateChainFile "剛纔生成的ssl路徑.crt"  #如 https/itnavs/blogs/blogs_itnavschain.crt
    
        <Directory "你網站的路徑"> #如 C:\php\wwww\itnavs\blogs\blogs-itnavs
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>
        
    </VirtualHost>

    重啓Apache,輸入https://blogs.itnavs.com/ 瀏覽器如若出現綠色鎖說明配置成功

clipboard.png

域名配置https已完成


httpd-ssl.conf語法擴充說明

ServerAdmin指令:

語法: ServerAdmin email-address|URL

用來設置服務器返回給客戶端的錯誤信息中包含的管理員郵件地址。便於用戶在收到錯誤信息後能及時與管理員取得聯繫。

ServerName指令:

語法:ServerName [scheme://] FQDN [:port]

用來設置服務器用於辨識本身的主機名和端口號。主要用於建立重定向URL。

DocumentRoot指令:

語法:DocumentRoot directory-path

用來設置httpd提供服務的目錄。即你所在項目入口處的文件夾。

ErrorLog指令:

語法: ErrorLog file-path

來設置當服務器遇到錯誤時記錄錯誤日誌的文件。若是file-path不是以/開頭的絕對路徑,那麼將會被認爲是一個相對於ServerRoot的相對路徑。

CustomLog指令:

語法: ErrorLog file-path common

設置日誌文件,並指明日誌文件所用的格式(一般經過格式的名字)。

<Directory 目錄路徑>...</Directory>

爲主目錄或虛擬目錄設置權限

DirectoryIndex index.html index.htm index.php

設置訪問目錄後進入的默認文件

AllowOverride all

定義位於每一個目錄下.htaccess(訪問控制)文件中的指令類型。none爲禁止使用.htaccess文件

特性:
Indexes MultiViews All ExecCGI FollowSymLinks Includes IncludesNoExec

命令 說明
Indexes 容許目錄瀏覽,當客戶僅指定要訪問的目錄,但沒有指定要訪問目錄下的哪一個文件,並且目錄下不存在默認文檔時,Apache以超文本形式返回目錄中的文件和子目錄列表(虛擬目錄不會出如今目錄列表中)
MultiViews 容許內容協商的多重視圖,MultiViews實際上是Apache的一個智能特性。當客戶訪問目錄 中一個不存在的對象時,如訪問「http://192.168.66.6/data/a」,則Apache會查找這個目錄下全部a.*文件。因爲 data目錄下存在a.gif文件,所以Apache會將a.gif文件返回給客戶,而不是返回出錯信息
All All包含了除MultiViews以外的全部特性,若是沒有Options語句,默認爲All
ExecCGI 容許在該目錄下執行CGI腳本
FollowSymLinks 能夠在該目錄中使用符號鏈接
Includes 容許服務器端包含功能
IncludesNoExec 容許服務器端包含功能,但禁用執行CGI腳本

一旦定義容許目錄瀏覽 ,就會將Web站點的文件夾和文件名結構暴露給黑客。目錄瀏覽還會容許黑客瀏覽文件並掌握服務器配置信息,因此指定該權限每每帶來安全性上的隱患。除非有充足的理由要使用目錄瀏覽,不然應該禁用它

.htaccess語法擴充說明

RewriteCond語法參數:

# 位於行首時表示註釋。

-d 測試字符串是不是已存在的目錄

-f 測試字符串是不是已存在的文件

-s 測試字符串所指文件是否有"非零"值(非空的常規文件)

-l視爲一個路徑名並測試它是否爲一個存在的符號鏈接(符號鏈接)

-x(可執行)視爲一個路徑名並測試它是否爲一個存在的、具備可執行權限的文件。該權限由操做系統檢測

RewriteRule語法參數:

[F] Forbidden(禁止) : 命令服務器返回 403 Forbidden錯誤給用戶瀏覽器

[L] Last rule(最後一條規則) : 告訴服務器在本條規則執行完後中止重寫URL

[N] Next(下一條規則) : 告訴服務器繼續重寫,指導全部重寫指令都執行過

[G] Gone(丟失) : 命令服務器返回410 GONE(no longer exists)錯誤消息

[P] Proxy(代理) : 告訴服務器經過mod_proxy模塊處理用戶請求

[C] Chain(捆綁) : 告訴服務器將當前的規則和前面的規則進行捆綁

[R] Redirect(重定向) : 命令服務器發出重定向消息,以便用戶瀏覽器發出rewritten/modified(重寫/修改)URL的請求

[NC] No Case(不區分大小寫) : 對客戶端請求的URL不區分大小寫

[PT] Pass Through(放行) : 讓mod_rewrite模塊將重寫的URL傳回給Apache作進一步處理

[OR] Or(邏輯或) : 用邏輯"或"將兩個表達式鏈接在一塊兒,若是結果爲"真",則會應用後繼的相關規則

[NE] No Escape(禁用轉義) : 命令服務器在輸出時禁用轉義字符

[NS] No Subrequest(禁用子請求) : 若是存在內部子請求,則跳過當前命令

[QSA] Append Query String(追加查詢字符串) : 命令服務器在URL末尾追加查詢字符串

[S=x] Skip(跳過) : 若是知足某指定的條件,則跳事後面第x調規則

[E=variable:value] Environmental Variable(環境變量) : 命令服務器將值value賦給變量variable

[T=MIME-type] Mime Type(MIME類型) : 聲明目標資源所屬的MIME類型

例如thinkphp隱藏index.php
<IfModule mod_rewrite.c>

    RewriteEngine on 
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    
</IfModule>

特別鳴謝

freessl-爲咱們提供免費的ssl證書

ssl其它參考

更多ssl申請路徑集合

相關文章
相關標籤/搜索