中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nginx怎么配置支持https

發布時間:2022-04-26 17:11:34 來源:億速云 閱讀:907 作者:iii 欄目:大數據

今天小編給大家分享一下nginx怎么配置支持https的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1、簡介

超文本傳輸協議http協議被用于在web瀏覽器和網站服務器之間傳遞信息,http協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,

因此,http協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息,

為了解決http協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議https,為了數據傳輸的安全,https在http的基礎上加入了ssl協議,ssl依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。

2、 https的優點

盡管https并非絕對安全,掌握根證書的機構、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但https仍是現行架構下最安全的解決方案,主要有以下幾個好處:

(1)使用https協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;

(2)https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。

(3)https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

(4)谷歌曾在2014年8月份調整搜索引擎算法,并稱“比起同等http網站,采用https加密的網站在搜索結果中的排名將會更高”。

3、 https的缺點

雖然說https有很大的優勢,但其相對來說,還是存在不足之處的:

(1)https協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;

(2)https連接緩存不如http高效,會增加數據開銷和功耗,甚至已有的安全措施也會因此而受到影響;

(3)ssl證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用。

(4)ssl證書通常需要綁定ip,不能在同一ip上綁定多個域名,ipv4資源不可能支撐這個消耗。

(5)https協議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用。最關鍵的,ssl證書的信用鏈體系并不安全,特別是在某些國家可以控制ca根證書的情況下,中間人攻擊一樣可行。

4、 下載 certbot

這里使用git下載,還沒有安裝git的查看如何

nginx怎么配置支持https

切換目錄

cd /usr/local

克隆git倉庫

git clone https: // github.com/certbot/certbot.git

克隆完成將會在/usr/loca/  出現certbot目錄

5、 查看 certbot

切換到certbot目錄

cd /usr/local/certbot

如果目錄是這樣的說明安裝成功了

nginx怎么配置支持https

certbot常用命令

6、 安裝nginx

7、 申請https證書

查看當前證書

./certbot-auto certificates

第一次執行將會安裝一些依賴,中途有一次確認詢問,輸入y即可

開始申請證書(證書有效期3個月,過期需要重新申請) 方式一:使用dns方式驗證,該方式需要你能配置域名,我個人喜歡這種方式 ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d  你的域名 --manual --preferred-challenges dns-01 certonly  如:

配置泛域名

復制代碼 代碼如下:

./certbot-auto --server https: // acme-v02.api.letsencrypt.org/directory -d *.nl166.com --manual --preferred-challenges dns-01 certonly

配置制定域名

復制代碼 代碼如下:

./certbot-auto --server https: // acme-v02.api.letsencrypt.org/directory -d api.nl166.com --manual --preferred-challenges dns-01 certonly

配置二級泛域名

復制代碼 代碼如下:

./certbot-auto --server https: // acme-v02.api.letsencrypt.org/directory -d *.api.nl166.com --manual --preferred-challenges dns-01 certonly

nginx怎么配置支持https

如上圖所示,第一次會讓你輸入一個郵箱,按要求輸入就可以了,到時候會發送一個郵件給你,需要點擊確認郵箱,所以務必填寫真實郵箱,然后按要求確認就可,不確認是執行不下去的。

nginx怎么配置支持https

接下來會讓你驗證域名,按要求解析個txt類型的記錄

nginx怎么配置支持https

保存確認以后再回到服務器中確認

nginx怎么配置支持https

上面這兩個文件就是配置https用到的證書了

方式二:使用插件方式

我們先看看官方怎么說的

nginx怎么配置支持https

這里我使用的是nginx(申請完會自動幫你重啟nginx) 這種方式配置不了泛域名,只能一個一個添加

./certbot-auto --nginx -d api2.nl166.com

nginx怎么配置支持https

nginx怎么配置支持https

解決上述報錯,請注意,/usr/local/nginx 請替換為你的nginx實際安裝位置安裝lnmp

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

ln -s /usr/local/nginx/conf/ /etc/nginx

再次執行申請

nginx怎么配置支持https

中途會詢問你請選擇是否將http流量重定向到https,刪除http訪問。可根據自己的需求選擇,我這里是c取消選擇(實際上這一步可以直接不理,經測試,這一步沒有選擇前,訪問網址https已經可以訪問了。)

如果想省略詢問這一步,可以添加certonly 該種方式只會生成證書,不做其余操作,證書配置需要自己手動添加 如下:

./certbot-auto certonly --nginx -d api2.nl166.com

nginx怎么配置支持https

如上圖所示,如果你配置了監聽443端口的server,他會幫你自動找到對應域名的配置文件,并添加下面兩行,還把我格式打亂了,}號與上面{的縮進不對應了,不過不影響功能,這里不知道會不會根據nginx的版本選擇是否添加ssl on;

因為我這個nginx版本是不需要這個的,較低版本需要添加ssl on;才能開啟https訪問。

如沒有監聽該域名的443端口,則會在如下位置添加信息

nginx怎么配置支持https

其他方式請自行摸索

8、配置nginx支持https

# https server
 #
 server {
 listen 443 ssl;
 server_name api2.nl166.com;
 root /data/web/im.nl166.com;

 location / {
 index index.php;
 }

 #auth_basic "hello world";
 #auth_basic_user_file /usr/local/nginx/conf/auth/nl166.auth;

 location ~ \.php$ {
 include fastcgi_params;
 fastcgi_pass unix:/tmp/php-fcgi.sock;
 fastcgi_index index.php;
 fastcgi_param script_filename $document_root$fastcgi_script_name;
 }
 location ~ .*.(svn|git|cvs) {
 deny all;
 }

 ssl_certificate /etc/letsencrypt/live/api2.nl166.com/fullchain.pem; # managed by certbot
 ssl_certificate_key /etc/letsencrypt/live/api2.nl166.com/privkey.pem; # managed by certbot
 }

較低版本需要增加ssl on;才能開啟https訪問。

9、使用shell腳本與定時任務定時續期證書

注意:為避免遇到操作次數的限制,加入 --dry-run 參數,可以避免操作限制,等執行無誤后,再去掉進行真實的renew 操作。 方式一的續期

其中域名為/etc/letsencrypt/renewal/目錄下的****.conf ,****就是你要填寫的域名,比如我生成的時候是*.nl166.com,但是在實際生成的時候是沒有*號的

/home/certbot-sh/au.sh 替換成你自己更新dns的腳本

如下:

復制代碼 代碼如下:

./certbot-auto renew --cert-name nl166.com --manual-auth-hook /data/shell/crontab/auto_update_httpscert. sh --dry-run

nginx怎么配置支持https

把更新命令放到一個文件,我這里是放在了/data/shell/crontab/auto_update_httpscert.sh 內容如下 ,原來的auto_update_httpscert.sh 更改到/data/shell/cnl_update_httpscert.sh

nginx怎么配置支持https

增加系統定時任務

crontab -e

#每個星期天凌晨5點執行更新https證書操作

0 5 * * 0 sh /data/shell/crontab/auto_update_httpscert.sh

方式二的續期 如下:

./certbot-auto certonly --renew-by-default --nginx -d api2.nl166.com --dry-run

nginx怎么配置支持https

增加系統定時任務操作參考方式一

以上就是“nginx怎么配置支持https”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒙阴县| 师宗县| 祁阳县| 汶川县| 邵武市| 湾仔区| 麻城市| 疏附县| 云和县| 灵川县| 酒泉市| 顺平县| 青岛市| 莱阳市| 三亚市| 溧水县| 衡东县| 海口市| 简阳市| 县级市| 洞口县| 贵溪市| 射阳县| 晋江市| 永年县| 富民县| 上栗县| 辛集市| 贵州省| 集安市| 波密县| 樟树市| 手机| 井研县| 黑龙江省| 乡宁县| 西乡县| 多伦县| 霍林郭勒市| 增城市| 苍梧县|