1. 程式人生 > >Https的介紹以及WEB伺服器部署SSL證書

Https的介紹以及WEB伺服器部署SSL證書

傳輸層安全SSL和TLS

來歷

    在TCP/IP四層模型把網路由上到下分為:應用層,傳輸層,網路層,鏈路層。在應用層,我們有許多的應用層協議,例如:SMTP,POP3,FTP,TFTP,HTTP等,使用者在使用這些協議的時候,往往需要保證機密性、完整性、伺服器身份認證、不可否認性和可用性。然而他們卻無法滿足這些安全需求或者說只能提供簡單的保護,但在因特網這個開放的環境中,這種保護顯得微不足道。

    此時我們有兩種方法解決這個安全問題,一是為每一種應用層協議增加相應的安全功能;二是從傳輸層入手,既然高層應用都是基於傳輸層的,呢麼增強這個層次的安全性就顯得更具備通用性。明顯的後者的價效比更高,SSL安全套接層(Secure Socket Layer)和TLS傳輸層安全(Transport Layer Security)就是第二種途徑的例項。這兩者的區別首先是使用的地方,SSL可以說是專門為Web,也就是HTTP協議提供安全保證的傳輸層協議,而TLS得範圍就更廣泛了。其餘兩者大體相同,只是在具體加密演算法上有所區別,但整體的協議流程都是差不多的。

SSLv3協議的作用和流程

SSL主要滿足機密性、完整性、必選的伺服器身份認證、可選的客戶端身份認證。此外還會在加密前進行資料的壓縮處理。

由4個協議組成:握手協議,記錄協議,更改密碼規範協議,警告協議

SSL的基本協議流程:

  1. 首先是TCP之間的三次握手建立TCP連線
  2. 客戶機與伺服器之間進行演算法協商,公鑰交換,伺服器認證(傳送證書)期間用在協商報文中加入隨機數防重放攻擊
  3. 對稱金鑰的協商,建立安全通訊的環境

如此一來,這之後兩者的通訊就在加密的環境下進行,應用層的內容是非常安全的。

SSL證書介紹

SSL主要做了加密以及伺服器認證,加密是通過對稱金鑰技術,公鑰加密技術,還有隨機數,雜湊雜湊演算法等我們熟知的內容進行作業的。而認證是通過什麼方式來認證呢?答案便是數字證書。由證書籤證機關CA(Certification Authority)頒發,目前全球信賴的支援瀏覽器的SSL證書主要有三種:

  1. DV (Domain Validation)域名驗證所得的證書僅驗證這個域名是你的域名,也就是隻驗證線上的而不驗證線下的。僅能支援網站機密資訊的加密,但並不驗證網站的真實身份。
  2. OV (Organization Validation)組織驗證所得的證書,這需要由簽證機關不僅是線上驗證你這個域名是你的,而且還要線下驗證你線上的東西是屬於哪個組織,這種證書在檢視使用者的時候就會寫明是哪個組織的。
  3. EV (Extended Validation)擴充套件驗證所得的證書,是全球統一嚴格身份驗證頒佈的證書,獲得難度和花費都很高,但在使用後,域名欄內會用綠色的字寫上你的組織名。

    如果是個人使用的網站選擇DV證書就可以了,你想弄其他的別人也不會頒給你,如果是公司使用的網站,可以獲取下OV證書,如果網站非常需要使用者的信任,呢麼可以去使用EV證書。其中DV證書是有免費的,另外兩個是要錢的,下文會對DV證書的獲取和安裝進行探討。

WEB伺服器部署SSL證書

    Apache自身就有SSL的模組,只要啟用並且配置好就好了,所以說要讓網站使用的協議變成HTTPS需要一個備案好的域名;一臺綁定了該域名且裝有Web伺服器的雲伺服器;以及一個數字證書。

    我們需要域名的原因是因為DV證書的頒佈需要進行域名的認證,而域名認證的一種方法就是你在你的web伺服器的根目錄(webroot)下放置一個簽證機構讓你放置的檔案,然後簽證機構通過域名去訪問這個檔案,訪問到了就認證成功了。

    首先我們需要選擇一個證書籤證機構,我使用的是Let's Encrypt.這個機關可以免費頒佈DV證書給你,並且自身有一個軟體certbot.只要在伺服器上安裝這個軟體,就可以通過這個軟體完成證書的生成,認證以及部署。

    具體的部署方法,在certbot的官網上寫的非常詳細,並且不同的伺服器系統,不同的web伺服器在命令上有所差別,在certbot更新後也有可能部署的方式有細微的改變,因此,授人以魚不如授人以漁,自己去下面的官網上看吧:

https://certbot.eff.org/#ubuntuxenial-apache

我的第一次部署經歷apache+tomcat

apache版本:2.4.18

伺服器版本:ubuntu16.04

部署時間:2018年2月

CA機構:Let's Encrypt

部署軟體:Certbot

  1. 安裝apache和tomcat
  2. 安裝Certbot及apache的相關模組
    apt-get update    // 更新軟體源中的所有軟體列表。 
    apt-get install software-properties-common
    apt-get update
    apt-get install pythen-certbot-apache
  3. 生成證書
    certbot --anthenticator webroot --installer apache        //webroot方式
    certbot -authenticator standalone --installer apache --pre-hook "apachectl -k stop" --post-hook "apachectl -k start"    //standalone方式
    Let's Encrypt支援3種認證方式:apache,standalone,webroot
  4. 允許訪問更目錄
    <Directory /var/www>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
            Require all granted
    </Directory>
    

  5. 開啟SSL代理模組以及重定向功能
    a2enmod ssl    //ssl模組
    a2enmod rewrite    //重定向模組

    開啟 /etc/apache2/sites-available/000-default.conf ,

    在 <\VirtualHost *:80><\VirtualHost> 標籤內隨便一個地方加入以下三行

    RewriteEngine on
    RewriteCond   %{HTTPS} !=on
    RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

  6. XAMPP中的apache部署證書的fangshi

    • 證書在/etc/letsencrypt/live/xxxxx.com目錄下,
      然後我們需要兩個:fullchain.pemprivkey.pem
      將其移動到/opt/lampp/etc/ssl.crt/opt/lampp/etc/ssl.key中,
      並進行相應改名為 server.keyserver.crt

    • 開啟xampp的ssl功能:xampp enablessl


  7. 啟用apache反向代理模組
    a2enmod proxyt    //啟用代理模組
    a2dismod proxy    //禁用代理模組
        編輯apache2配置檔案
    vi /etc/apache2/apache2.conf
    #載入兩個代理模組
    LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
    LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
    #靜態檔案不反向代理
    ProxyPass /images/ !
    ProxyPass /html/ !
    ProxyPass /css/ !
    ProxyPass /js/ !
    #其餘請求讓tomcat進行處理,此處可配置一個tomcat叢集
    ProxyPass / http://localhost:8080/

參考:

xampp配置https:

    https://www.cnblogs.com/Rainlee007/p/6849792.html

apache80埠重定向為443埠:

    http://blog.csdn.net/s502414680/article/details/70338457?utm_source=itdadao&utm_medium=referral

各個SSL證書的介紹:

    https://www.wosign.com/faq/faq-how-https.htm

Let’s Encrypt配置免費SSL證書建立HTTPS(Ubuntu+Apache):

https://www.centos.bz/2018/02/lets-encrypt%E9%85%8D%E7%BD%AE%E5%85%8D%E8%B4%B9ssl%E8%AF%81%E4%B9%A6%E5%BB%BA%E7%AB%8Bhttps%EF%BC%88ubuntuapache%EF%BC%89/

相關推薦

Https介紹以及WEB伺服器部署SSL證書

傳輸層安全SSL和TLS來歷    在TCP/IP四層模型把網路由上到下分為:應用層,傳輸層,網路層,鏈路層。在應用層,我們有許多的應用層協議,例如:SMTP,POP3,FTP,TFTP,HTTP等,使用者在使用這些協議的時候,往往需要保證機密性、完整性、伺服器身份認證、不可

gzip的介紹以及web伺服器對檔案壓縮的支援

GZIP和HTTP        GZIP是一種檔案壓縮標準,能夠大幅度的減少檔案本身大小和佔用的儲存空間。現今已經成為Internet 上使用非常普遍的一種資料壓縮格式,或者說一種檔案格式。 通過H

阿里雲伺服器配置SSL證書成功開啟Https(記錄趟過的各種坑)

環境: 阿里云云伺服器    Windows Server 2008 標準版 SP2 中文版(趁1212優惠買的一年的水貨配置) 阿里雲購買的域名(已備案、已解析) 伺服器:phpstudy:php5.4.45+Apache(因為是phpstudy

Linux Web伺服器部署介紹

伺服器環境安裝 Mysql安裝 安裝過程中會輸入root密碼,請注意記錄密碼 sudo apt-get install mysql-server apt isntall mysql-client apt install libmysqlcl

Tomcat伺服器結構以及web應用部署

1.Tomcat目錄結構 通過結構圖可以看出每個資料夾對應的配置項。 一個web應用由多個靜態web資源和動態web資源組成,組成web應用的這些檔案通常我們會使用一個目錄組織,這個目錄組織稱之為web應用所在目錄。 web應用開發好後,若想共外界訪問

寶塔面板一鍵部署SSL證書,免費配置https

    之前給網站配置https,以為在伺服器運營商開啟CDN後才行,還擔心被刷CDN流量跑錢,其實大可不必,使用寶塔面板不用開啟CDN也可以使用https。      首先,在面板中找到需要配置https的站點,點選設定:     檢視【SSL】選項卡,第一個寶塔S

在Nginx下部署SSL證書並重定向至HTTPS

安裝包 進入 protoc .com .html permanent ... !null key 步驟一:下載 Nginx 版證書文件,解壓以後可以看到一個 .key 文件和 .crt/.pem 文件    步驟二:上傳證書。把上面的 .key 文件和 .crt/.pem

Nginx部署SSL證書反向代理

write 反向代理 gpo rewrite strong 秘鑰 zlib rgs oot 1、環境簡介   使用一臺centos6.4系統部署Nginx反向代理,代理客戶的網站,客戶需要提供ssl證書,可以到ca認證中心申請,由於第一次部署因此鬧了不少烏龍。 2、安裝Ng

寶塔面板怎樣部署SSL證書

開始之前我們先說一下SSL有什麼好處: SSL證書是一個安全協議,最初是由美國網景 Netscape Communication 公司設計開發的,全稱為安全套接層協議 (Secure Sockets Layer) 。主要有以下特點: 1. 資訊傳輸的保密性; 2. 資料交換的完整性; 3

SpringBoot部署SSL證書

看過前面的文章的網友都知道,阿里雲能夠提供基於各種伺服器的免費SSL證書。包括tomcat,nginx,Apache等。但是 Springboot 是內嵌 tomcat,針對這種情況該如何不少SSL證書呢?本文將介紹 Springboot 的SSL證書部署。

linux下的apache部署ssl證書

一、安裝準備 1.安裝Openssl 要使Apache支援SSL,需要首先安裝Openssl支援。推薦下載安裝openssl-0.9.8k.tar.gz   下載Openssl:http://www.openssl.org/source/ tar -zxf openssl

Ubuntu 下配置 Nginx 伺服器SSL 證書

在Web伺服器上配置TLS / SSL 現在您已擁有 SSL 證書,您需要配置 Nginx Web 伺服器以使用它。 我們將對配置進行一些調整: 我們將建立一個包含 SSL 金鑰和證書檔案位置的配置程式碼段。 我們將建立一個包含強 SSL 設定的配置程式碼段,可以在

解決 web伺服器部署常見問題,server application unavailable 和 程式無法連線資料庫 的問題(asp.net 2.0 + oracle9i + winXP)

部署時出現以下錯誤: server application unavailable the web application you are attempting to access on this web server is currently unavailable. pl

weblogic 之web伺服器部署及相關問題整理

寫一些不同領域的博文,希望我的博文或者經驗對不同層次的你有所幫助!下面寫一篇關於java web 應用伺服器主題的博文!相信大家在剛接觸java web 這個方向的時候,做的第一個關於java web的專案的時候使用的第一個web 應用伺服器就是(湯姆貓)Tomcat,這個

Linux 安裝 Tomcat 以及web 專案部署詳細圖文教程

下載tomcat Linux 版本第一步 新建資料夾 用來存放上傳的tomcat# mkdir /usr/tomcat第二步 上傳tomcat到linux進入新建的tomcat資料夾 # cd /usr/tomcat使用 rz 命令在彈出視窗找到剛才下載的tomcat 上傳#

JAVA WEB專案目錄結構以及web應用部署的根目錄,編譯路徑和專案根目錄的區別

web應用部署的根目錄,編譯路徑和專案的根目錄有什麼區別? 直接上例子: 你有一個專案,名字叫做testPro 專案放到了你的D盤,目錄結構是這樣的: D:/testPro --src   --main     --webapp       --WEB-INF --targ

各類網站部署SSL證書

要給自己的網站配置 SSL 證書,首先要申請一個 SSL 證書,有很多平臺可以免費申請(當然也有收費的),比如說騰訊雲。申請成功後,將證書下載下來,下載到的是一個壓縮包,裡面包含各種伺服器版本的證書,不同伺服器不一樣的配置。 1. Apache部署SSL證

Java Web網站搭建SSL證書的問題與解決方案

今天給網站新增SSL證書加密連線,說白了就是之前的是http協議訪問, 新增完之後就是https協議訪問,結果遇到了一堆問題,特此總結一下。 前言:我採用的是沃通證書免費證書,已經給證書設定裡密

HTTPS-老司機手把手教你SSL證書申購-TrustAsia證書

前言 Apple從2016年逐步要求HTTPS,SSL相關證書等,上月的JSPatch封殺更是引起廣大開發者的注意,整體來說多是為了安全考慮,那麼SSL證書是硬需,考慮到上一篇:HTTPS時代已來,老

centos7.2下apache伺服器配置ssl證書

準備yum install mod_ssl openssl安裝好之後  會自動生成一個/etc/httpd/conf.d/ssl.conf檔案 和 /etc/httpd/conf.modules.d/00-ssl.conf檔案開啟443埠然後把你下載好的證書解壓後得到的資料夾