一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - Nginx - Nginx配置https原理及實(shí)現(xiàn)過程詳解

Nginx配置https原理及實(shí)現(xiàn)過程詳解

2020-10-01 01:29海綿般汲取 Nginx

這篇文章主要介紹了Nginx配置https原理及實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

使用linux實(shí)用工具certbot來生成https證書

這個(gè)工具是生成Let's Encrypt證書,

Let's Encrypt數(shù)字證書認(rèn)證機(jī)構(gòu),Let's Encrypt 是由互聯(lián)網(wǎng)安全研究小組(ISRG,一個(gè)公益組織)提供的服務(wù)

提供免費(fèi)的SSL/TLS證書

2015年12月3日,該服務(wù)進(jìn)入公測階段,正式面向公眾。

2016年4月12日,該項(xiàng)目正式離開Beta階段。

到2016年9月9日,Let's Encrypt 已經(jīng)發(fā)放 1000 萬張證書。

因此對于大部分中小型網(wǎng)站來說,是一個(gè)值得考慮的選擇。

https配置的步驟

1打開 https://certbot.eff.org/ 選擇對應(yīng)操作系統(tǒng)與 Web 服務(wù)器

這里我選擇nginx服務(wù)器,CentOS7服務(wù)器上

2執(zhí)行命令,并根據(jù)需要修改相應(yīng)域名參數(shù)。

certbot要通過yum安裝,certbot被打包到epel源中,

所以安裝啟動epel庫,安裝epel源查看鏈接

https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F

啟動epel源,可以使用手動自己啟動epel,也可以借助yum-config-manager命令來啟動

安裝yum-config-manager

yum -y install yum-utils

啟動epel

yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

3安裝certbot

sudo yum install certbot python2-certbot-nginx

獲取證書的兩種方式:身份驗(yàn)證器和安裝程序

使用webRoot插件進(jìn)行安裝,這個(gè)要求你的服務(wù)器80端口能夠正常被訪問到(這個(gè)域名是屬于你的)

webRoot插件通過certonly和--webroot(或者-w)在命令行上執(zhí)行命令

certbot certonly -w /var/www/example -d www.example.com

certbot certonly -w 可以被http訪問到的webroot目錄 -d 要配置https的域名名稱

上面的 /var/www/example表示的是在nginx配置文件中root根節(jié)點(diǎn)所指向的根路徑

webroot插件的工作原理是為每個(gè)請求的域創(chuàng)建一個(gè)臨時(shí)文件${webroot-path}/.well-known/acme-challenge。

然后,Let的加密驗(yàn)證服務(wù)器發(fā)出HTTP請求,以驗(yàn)證每個(gè)請求的域的DNS是否解析為運(yùn)行certbot的服務(wù)器。

訪問請求如下

66.133.109.36 - - [05/Jan/2016:20:11:24 -0500] "GET /.well-known/acme-challenge/HGr8U1IeTW4kY_Z6UIyaakzOkyQgPr_7ArlLgtZE8SX HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"

所以我們服務(wù)器需要放通.well-known/acme-challenge這個(gè)訪問路徑

例如,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
server
  {
    listen 80;
    server_name www.example.com;
    index index.html ;
    root /var/www/example;
  
    。。。
  
    location ~ /.well-known {
      allow all;
    }
  }

具體的http配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server
  {
    listen 80;
    server_name www.example.com;
    index index.html ;
    root /var/www/www.example.com;
 
 
    location / {
      proxy_redirect off;
      proxy_pass http://localhost:8080;
      proxy_set_header Host $host;
      proxy_set_header  X-real-ip $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
 
    #error_page  404  /404.html;
 
    location /nginx_status
    {
      #stub_status on;
      #access_log  off;
    }
 
    location ~ /.well-known {
      allow all;
    }
 
    location ~ /\.
    {
      deny all;
    }
access_log /data/log/nginx//var/www/www.example.com/-access.log;
    error_log /data/log/nginx//var/www/www.example.com/-error.log;
}

執(zhí)行完命令后,https證書就會生成在/etc/letsencrypt/live目錄下

certbot certonly -w /var/www/example -d www.example.com

比如上面的命令會生成證書/etc/letsencrypt/live/www.example.com/fullchain.pem

生成證書密鑰文件/etc/letsencrypt/live/www.example.com/privkey.pem

然后我們只需要為該域名加上https配置,我們nginx就配置完成https

https對應(yīng)443端口

具體https配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
server
  {
    listen 443 ssl http2;
    #listen [::]:443 ssl http2;
    server_name www.example.com;
    index index.html index.htm index.php default.html default.htm default.php;
    root /var/www/www.example.com/;
    
    ssl on;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    
   location / {
      proxy_redirect off;
      proxy_pass http://localhost:8080;
      proxy_set_header Host $host;
      proxy_set_header  X-real-ip $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
 
    #error_page  404  /404.html;
 
    include enable-php-pathinfo.conf;
 
    location ~ /.well-known {
      allow all;
    }
 
    location ~ /\.
    {
      deny all;
    }
 
    access_log /data/log/nginx/www.example.com-ssl-access.log;
    error_log /data/log/nginx/www.example.com-ssl-error.logs; 
}

查看生產(chǎn)的證書

tree /etc/letsencrypt/live/

證書續(xù)簽

Let's Encrypt 生成的免費(fèi)證書為3個(gè)月時(shí)間,但是我們可以無限次續(xù)簽證書

certbot renew

使用定時(shí)器來自動重新生成證書

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

centos6使用

1獲取certbot客戶端

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

2停止nginx

service nginx stop

3生成證書

./certbot-auto certonly --standalone --email `你的郵箱地址` -d `你的域名地址`

當(dāng)前網(wǎng)站有多個(gè)域名時(shí)需在后面增加,例如

./certbot-auto certonly --standalone --email `你的郵箱地址` -d `你的域名1` -d `你的域名2`

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/gne-hwz/p/10433126.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 高h辣文小说网 烧书阁 | 国产高清在线精品一区二区三区 | 欧美日韩在线观看一区二区 | 精品在线播放视频 | 欧美一级视频免费观看 | 无码乱人伦一区二区亚洲 | 久久re这里精品23 | a级亚洲片精品久久久久久久 | 亚洲第一福利视频 | 无限国产资源 | 国模人体aⅴ | 韩国免费视频 | 国产精品亚洲一区二区久久 | 国产老村长足疗店对白 | 女仆掀起蕾丝裙被打屁股作文 | 亚洲精品97福利在线 | 午夜在线观看免费完整直播网页 | 果冻传媒在线播放观看228集 | 亚洲欧美久久婷婷爱综合一区天堂 | 操bb视频| 精品国产成人AV在线看 | 国产高清在线播放刘婷91 | 男女一级簧色带 | 亚洲狠狠网站色噜噜 | 日本韩国推理片免费观看网站 | 亚洲国产精品自产在线播放 | 欧美国产日韩在线播放 | 99久女女精品视频在线观看 | 欧美久久天天综合香蕉伊 | 国产自拍资源 | 国产香蕉一区二区在线网站 | 亚洲免费二区 | 四虎影视4hutv最新地址在线 | 国产视频分类 | 99精品视频在线观看免费播放 | 精品在线小视频 | 人人揉揉香蕉 | 国产精品成人va在线观看 | 免费的网址 | 无人视频在线观看完整版高清 | 99re热这里只有精品 |