自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何搭建一個HTTPS服務(wù)端

開發(fā) 前端
關(guān)于 HTTPS 的基本原理大家都已經(jīng)不再陌生,今天和大家說說如何搭建一個支持 HTTPS 的服務(wù)端。

關(guān)于 HTTPS 的基本原理大家都已經(jīng)不再陌生,今天和大家說說如何搭建一個支持 HTTPS 的服務(wù)端。

服務(wù)端的 HTTPS

HTTPS 已經(jīng)幾乎成為了當(dāng)前互聯(lián)網(wǎng)推薦的通信方式,它能最大化保證信息傳輸?shù)陌踩?,從去年蘋果的強制 HTTPS ,到如今各大網(wǎng)站都支持了 HTTPS。它會越來越普及。

之前寫過幾篇關(guān)于 HTTPS 原理的文章,有用戶留言希望了解一些如何在服務(wù)端搭建 HTTPS 服務(wù)的內(nèi)容,這次就和大家聊聊這個話題。

SSL 證書

搭建一個 HTTPS 站點,第一步要做的就是申請 SSL 證書, 而且要在標(biāo)準(zhǔn)的證書頒發(fā)機構(gòu)來申請。 當(dāng)然,從技術(shù)上來說,你可以使用自簽名證書,但自簽名證書會被所有的瀏覽器視為不安全的證書,并且會給用戶報錯,就像這樣:

如何搭建一個HTTPS服務(wù)端

所以,還是需要申請一個正規(guī)的證書的。 可申請證書的頒發(fā)機構(gòu)有很多,比如 GoDaddy,Comodo,Verisign 等等。價格從一年幾美金到幾十美金不等。

我們就以 GoDaddy 為例,帶大家了解一下流程。 在 GoDaddy 的首頁有一個 Web Security 標(biāo)簽,點擊這個標(biāo)簽后可以找到 SSL Certificates 選項:

如何搭建一個HTTPS服務(wù)端

點擊進去, 就可以看到可選的幾個證書形式,有單域名的,還有允許多個二級域名的等:

如何搭建一個HTTPS服務(wù)端

避免廣告嫌疑,下面的價格信息略去了~,這里只給大家介紹流程,幫助大家了解。 證書服務(wù)商大家可以自行選擇。

接下來,證書頒發(fā)機構(gòu)會讓你填寫一個叫做 CSR 的東西, 如果大家搞 iOS 開發(fā)對這個應(yīng)該不陌生,申請?zhí)O果開發(fā)者證書的時候大家也做過類似的事情。

如何搭建一個HTTPS服務(wù)端

CSR 全稱 Certificate Signing request。 顧名思義就是用于申請證書必須的一些信息,在 Lunix 系統(tǒng)中,它可以通過命令生成(大多數(shù)的服務(wù)端應(yīng)該都是基于 Linux 的,所以我們用它來作為例子):

  1. $ openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr 

openssl 命令,如果你的系統(tǒng)沒有安裝的話,可以通過包管理先安裝。 需要把這里面的 yourdomain.key 和 yourdomain.csr 替換成你自己的名稱,可以是域名,也可以是其他標(biāo)識。

生成成功后,可以用 cat 命令輸出 yourdomain.csr 中的內(nèi)容:

  1. $ cat yourdomain.csr 

會在命令行輸出 CSR 的內(nèi)容,把這段內(nèi)容復(fù)制到前面截圖中的文本框中,然后點擊生成就好了。

注意,這里的 yourdomain.key 文件你要保管好。 這是你證書的私鑰,后面配置 HTTPS 的時候需要用到它。 并且它不能重新生成,而且不能泄露出去。原因可以參考我前面關(guān)于 HTTPS 原理的相關(guān)文章。

與此同時,證書頒發(fā)機構(gòu)在你提交 CSR 之后,會給你生成證書文件, Godaddy 會生成兩個證書,一個是你站點的證書,一個是根證書。 把它們下載到你的服務(wù)器上面。

Apache 服務(wù)端配置

證書準(zhǔn)備好之后,我們要對服務(wù)端程序進行配置,讓它支持 HTTPS。這里我給大家以 CentOS 7 操作系統(tǒng), Apache 2.x 服務(wù)端程序為例。

Apache 的 HTTPS 配置文件一般在 /etc/httpd/conf.d/ssl.conf 這個位置。 用 vim 編輯器打開它, 然后加入這樣一個節(jié)點:

 

  1. <VirtualHost *:443> 
  2.      SSLEngine On 
  3.      SSLCertificateFile /root/yoursite.crt 
  4.      SSLCertificateKeyFile /root/yoursite.key 
  5.      SSLCACertificateFile /root/rootcert.crt 
  6.  
  7.      ServerAdmin admin@yoursite.com 
  8.      ServerName yoursite.com 
  9.      DocumentRoot /var/www/html/ 
  10. </VirtualHost> 

這里用到了我們前面準(zhǔn)備的證書和秘鑰。 SSLCertificateFile 是你站點的證書, SSLCACertificateFile 是根證書, SSLCertificateKeyFile 是只保存在你服務(wù)器的私鑰。

有了這些信息后,Apache 就可以正確的處理 HTTPS 請求了。 在這之前我們還需要在做最后一步操作, 編輯 /etc/httpd/conf/httpd.conf 文件, 這個是 Apache 的主配置文件, 加入這樣一行:

  1. Listen 443 

這個是讓你的服務(wù)端同時監(jiān)聽 443 端口。 因為 HTTPS 的默認(rèn)端口是 443, 所以這個設(shè)置是必須要有的。

一切都就緒后,重啟你的服務(wù)器:

  1. systemctl restart httpd 

然后再用瀏覽器輸入 https://yoursite.com 訪問你的站點時,就應(yīng)該可以看到 HTTPS 驗證成功的小鎖頭了。

防火墻設(shè)置

如果配置都就緒,你重啟了之后,依然不能正常訪問,有可能是你的防火墻把 443 端口攔截了,把它打開:

 

  1. iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT 
  2. iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

結(jié)束

目前成熟的 Web 服務(wù)程序都有對 HTTPS 很好的支持,只需要經(jīng)過簡單的配置,即可完成 HTTPS 服務(wù)器的搭建。 而 HTTPS 之所以相對性能消耗更大,是因為每次數(shù)據(jù)傳輸都需要進行加密和解密的操作。 作為 APP 開發(fā)者們,可能對服務(wù)端的技術(shù)了解的并沒有那么深,可以把它作為一個備忘錄,日后用到的時候再來看看。

責(zé)任編輯:未麗燕 來源: Swift Cafe
相關(guān)推薦

2023-09-11 10:53:32

2021-04-30 09:32:38

服務(wù)端渲染SSR

2024-04-01 13:18:15

App架構(gòu)服務(wù)端

2024-01-02 13:58:04

GoREST API語言

2022-05-22 13:55:30

Go 語言

2010-05-28 10:10:49

2022-06-14 15:07:04

IPC客戶端服務(wù)端

2024-01-02 12:17:44

Go傳統(tǒng)遠(yuǎn)程

2016-09-23 21:15:49

阿里云服務(wù)器搭建

2020-11-11 09:49:12

計算架構(gòu)

2023-10-30 18:55:43

FTP服務(wù)器開源

2016-03-18 09:04:42

swift服務(wù)端

2020-11-03 14:10:29

Vue服務(wù)端渲染前端

2019-07-25 11:20:34

閑魚服務(wù)端定位

2018-12-18 12:12:51

Python服務(wù)器Django

2021-01-20 07:37:39

Exceptionle服務(wù)端部署

2024-03-06 14:58:52

客戶端微服務(wù)架構(gòu)

2012-03-02 10:38:33

MySQL

2013-03-25 10:08:44

PHPWeb

2019-08-21 17:41:29

操作系統(tǒng)軟件設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號