亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 網(wǎng)站 > Nginx > 正文

為docker中的nginx配置https的方法步驟

2024-08-30 12:30:10
字體:
供稿:網(wǎng)友

沒有 https 加持的網(wǎng)站會(huì)逐漸地被瀏覽器標(biāo)記為不安全的,所以為網(wǎng)站添加 https 已經(jīng)變得刻不容緩。對(duì)于商業(yè)網(wǎng)站來說,花錢購(gòu)買 SSL/TLS 證書并不是什么問題。但對(duì)于個(gè)人用戶來說,如果能有免費(fèi)的 SSL/TLS 證書可用將會(huì)是非常幸福的事情!Let's Encrypt 就是一個(gè)提供免費(fèi) SSL/TLS 證書的網(wǎng)站,由于其證書期限只有三個(gè)月,所以需要我們用自動(dòng)化的方式去更新證書。本文將介紹如何為通過 docker 運(yùn)行的 nginx 中的站點(diǎn)添加 https 支持,并自動(dòng)完成證書的更新。本文的演示環(huán)境為:運(yùn)行在 Azure 上的 Ubuntu 16.04 主機(jī)(此圖來自互聯(lián)網(wǎng)):

docker,nginx,https

準(zhǔn)備環(huán)境

在 Azure 上創(chuàng)建 Ubuntu 類型的虛機(jī)事件非常容易的事情,安裝 docker 也無(wú)須贅言。比較容易忽略的是配置合適的網(wǎng)絡(luò)安全組規(guī)則,比如打開 80 和 443 端口:

docker,nginx,https

還有就是配置 DNS:

docker,nginx,https

創(chuàng)建一個(gè)普通的 http 站點(diǎn)

簡(jiǎn)單起見,直接使用一個(gè)鏡像中的 nodejs 應(yīng)用作為 web 站點(diǎn):

$ docker pull ljfpower/nodedemo$ docker network create -d bridge webnet$ docker run -d --restart=always --expose=3000 /   --network=webnet --name=myweb /   ljfpower/nodedemo

在用戶的家目錄下創(chuàng)建 nginx 目錄及其子目錄 conf.d、conf.crt 和 html,創(chuàng)建 logs 目錄及其子目錄 nginx 和 letsencrypt:

$ mkdir -p nginx/{conf.d,conf.crt,html}$ mkdir -p logs/{nginx,letsencrypt}

說明,本文演示的示例中需要我們手動(dòng)創(chuàng)建的文件和目錄結(jié)構(gòu)如下:

docker,nginx,https

創(chuàng)建 nginx/nginx.conf 文件,內(nèi)容如下:

user nginx;worker_processes auto;error_log /var/log/nginx/error.log warn;pid  /var/run/nginx.pid;events { worker_connections 2048;}http { include  /etc/nginx/mime.types; default_type application/octet-stream; sendfile  on; keepalive_timeout 65; client_max_body_size 10M; include /etc/nginx/conf.d/*.conf;}

然后創(chuàng)建 nginx/conf.d/default.conf 文件,內(nèi)容如下:

upstream web{ server myweb:3000;}server { listen  80; listen  [::]:80; server_name filterinto.com www.filterinto.com; location ^~ /.well-known/acme-challenge/ {  default_type "text/plain";  root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ {  return 404; } location / {  proxy_pass http://web; }}

其中 /.well-known/acme-challenge/ 目錄是 certbot 工具在生成證書時(shí)創(chuàng)建的。接下來創(chuàng)建文件 nginx/html/index.html 文件,內(nèi)容如下:

<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>Let's Encrypt First Time Cert Issue Site</title></head><body> <h1>Hello HTTPS!</h1> <p>  Just used for the very first time SSL certificates are issued by Let's Encrypt's  certbot. </p></body></html>

這個(gè)頁(yè)面也是 certbot 在生成證書時(shí)需要用到的。最后讓我們啟動(dòng)容器(在用戶的家目錄下執(zhí)行下面的命令):

$ docker run -d / -p 80:80 / -v $(pwd)/nginx/conf.d:/etc/nginx/conf.d:ro / -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro / -v $(pwd)/logs/nginx:/var/log/nginx / -v $(pwd)/nginx/html:/usr/share/nginx/html / --restart=always / --name=gateway / --network=webnet / nginx:1.14

注意:這時(shí)沒有映射 443 端口,也沒有掛載存放證書的目錄。只能以 http 協(xié)議訪問訪問我們的站點(diǎn):

docker,nginx,https

為站點(diǎn)生成 SSL/TLS 證書

Let's Encrypt 是一個(gè)提供免費(fèi) SSL/TLS 證書的網(wǎng)站,它為用戶提供了 certbot 工具用來生成 SSL/TLS 證書。方便起見,我們把 certbot 簡(jiǎn)單的封裝到容器中。在用戶的家目錄下創(chuàng)建 certbot 目錄,進(jìn)入 certbot 目錄并把下面的內(nèi)容保存到 Dockerfile 文件中:

FROM alpine:3.4RUN apk add --update bash certbotVOLUME ["/etc/letsencrypt"]

然后執(zhí)行下面的命令創(chuàng)建 certbot 鏡像:

$ docker build -t certbot:1.0 .

然后在 certbot 目錄下創(chuàng)建自動(dòng)更新證書的腳本 renew_cert.sh,內(nèi)容如下:

#!/bin/bashWEBDIR="$1"LIST=('filterinto.com' 'www.filterinto.com')LED_LIST=()WWW_ROOT=/usr/share/nginx/htmlfor domain in ${LIST[@]};do docker run /  --rm /  -v ${WEBDIR}/nginx/conf.crt:/etc/letsencrypt /  -v ${WEBDIR}/logs/letsencrypt:/var/log/letsencrypt /  -v ${WEBDIR}/nginx/html:${WWW_ROOT} /  certbot:1.0 /  certbot certonly --verbose --noninteractive --quiet --agree-tos /  --webroot -w ${WWW_ROOT} /  --email="nick.li@grapecity.com" /  -d "$domain" CODE=$? if [ $CODE -ne 0 ]; then  FAILED_LIST+=($domain) fidone# output failed domainsif [ ${#FAILED_LIST[@]} -ne 0 ];then echo 'failed domain:' for (( i=0; i<${#FAILED_LIST[@]}; i++ )); do  echo ${FAILED_LIST[$i]} donefi

在用戶的家目錄中執(zhí)行 ./renew_cert.sh /home/nick 命令就可以生成新的證書(/home/nick 為當(dāng)前用戶的家目錄)。生成的證書被保存在 /home/nick/nginx/conf.crt/live 目錄下,以域名命名的目錄下保存著該域名的證書:

docker,nginx,https

然后去檢查下 nginx/html 目錄,發(fā)現(xiàn)多了一個(gè)隱藏的 .well-known 目錄,這個(gè)目錄就是在生成證書時(shí)創(chuàng)建的:

docker,nginx,https

有了 SSL/TLS 證書,接下來我們就可以配置 https 站點(diǎn)了。

為站點(diǎn)配置 SSL/TLS 證書

有了 SSL/TLS 證書,接下來更新 nginx 的配置文件就可以了,更新 nginx/conf.d/default.conf 的內(nèi)容如下:

upstream web{ server myweb:3000;}server { listen  80; listen  [::]:80; server_name filterinto.com www.filterinto.com; location ^~ /.well-known/acme-challenge/ {  default_type "text/plain";  root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ {  return 404; } return 301 https://$server_name$request_uri;}server { listen  443; listen  [::]:443; server_name filterinto.com; # enable ssl ssl      on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers    "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"; # config ssl certificate ssl_certificate   conf.crt/live/filterinto.com/fullchain.pem; ssl_certificate_key  conf.crt/live/filterinto.com/privkey.pem; location ^~ /.well-known/acme-challenge/ {  default_type "text/plain";  root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ {   return 404; } location / {  proxy_pass http://web; }}server { listen  443; listen  [::]:443; server_name www.filterinto.com; # enable ssl ssl      on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers    "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"; # config ssl certificate ssl_certificate   conf.crt/live/www.filterinto.com/fullchain.pem; ssl_certificate_key  conf.crt/live/www.filterinto.com/privkey.pem; location ^~ /.well-known/acme-challenge/ {  default_type "text/plain";  root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ {   return 404; } location / {  proxy_pass http://web; }}

然后刪除容器 gateway 并用下面的腳本重新創(chuàng)建:

$ docker run -d / -p 80:80 / -p 443:443 / -v $(pwd)/nginx/conf.d:/etc/nginx/conf.d:ro / -v $(pwd)/nginx/conf.crt:/etc/nginx/conf.crt:ro / -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro / -v $(pwd)/logs/nginx:/var/log/nginx / -v $(pwd)/nginx/html:/usr/share/nginx/html / --restart=always / --name=gateway / --network=webnet / nginx:1.14

現(xiàn)在就只能通過 https 來訪問站點(diǎn)了:

docker,nginx,https

自動(dòng)更新證書

Let's Encrypt 提供的 SSL/TLS 證書期限只有三個(gè)月,每過三個(gè)月要手動(dòng)更新一次證書也夠嗆的,下面我們介紹自動(dòng)更新證書的方法。

其實(shí)我們的配置已經(jīng)為自動(dòng)化更新證書提供了最大的便利(其實(shí)是使用 docker 帶來的便利),在定時(shí)任務(wù)中添加下面兩條記錄就可以了:

0 0 1 * * /home/nick/certbot/renew_cert.sh /home/nick >> /home/nick/logs/cert.log 2>> /home/nick/logs/cert.error.log0 1 1 * * docker exec gateway nginx -s reload

每月 1 號(hào)的 0 點(diǎn)更新證書,一個(gè)小時(shí)后 reload nginx 的配置。

總結(jié)

Let's Encrypt 是一個(gè)非常棒的網(wǎng)站,對(duì)于初學(xué)者和個(gè)人來說,能夠幫助我們輕松的實(shí)現(xiàn) HTTPS 站點(diǎn)(還是免費(fèi)的)!在方便的同時(shí),其隱患也是顯而易見的:既然誰(shuí)都可以無(wú)門檻的獲得 SSL/TLS 證書,那么非法網(wǎng)站也可以通過它把自己偽裝成看上去合法的站點(diǎn)。 所以千萬(wàn)不要片面的認(rèn)為 HTTPS 站點(diǎn)就是安全的!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
午夜cr在线观看高清在线视频完整版| 亚洲福利一二三区| 丁香网亚洲国际| 国产一区二区三区无遮挡| 国产二区三区在线| 欧美人一级淫片a免费播放| 性8sex亚洲区入口| 国产三区在线视频| 欧美日韩国产免费观看视频| 欧美色欧美亚洲另类二区精品| 啊v视频在线一区二区三区| 私人高清影院 强乱中文字| 卡一卡二卡三在线观看| 国产中文字字幕乱码无限| 欧美孕妇孕交黑巨大网站| 成人av电影免费| 18精品爽视频在线观看| 亚洲精品无码专区在线播放| 国产精品白嫩初高中害羞小美女| 精品成人久久av| 亚洲欧美综合精品久久成人| 久久精品国产亚洲blacked| 91九色综合久久| 毛片免费不卡| 精品免费视频123区| 成人在线视频免费| 性一交一乱一伦一色一情| 91视视频在线直接观看在线看网页在线看| 97中文字幕在线| 国产在线播放av| 91九色对白| 新67194成人永久网站| 国产一区91| 黑人巨大精品欧美一区免费视频| 国产又爽又黄的视频| 先锋av资源色| www夜片内射视频日韩精品成人| www.超碰com| 老司机精品视频导航| 国产又黄又猛的视频| 欧美大片免费久久精品三p| 日韩一区二区久久久| 久久国产三级| 日韩av在线一区二区三区| 三年片观看免费观看大全视频下载| 成年人在线观看| free性欧美16hd| 天海翼亚洲一区二区三区| 欧美特级aaa| 大荫蒂性生交片| 国产不卡精品视频| 欧美三级午夜理伦三级中视频| 日本高清免费观看| 久久中文字幕电影| 999国产精品视频免费| 精品国产乱码久久久久久108| 男人添女人下部高潮视频在线观看| 69亚洲精品久久久蜜桃小说| 日韩国产成人| 国产九一视频| 国产一区二区三区蝌蚪| 成人在线看视频| 国产精品扒开腿做爽爽爽软件| 欧美日韩亚洲三区| 亚洲www.| 午夜影院观看视频免费| 蜜臀av午夜一区二区三区| 天天做夜夜做人人爱精品| 五月天中文字幕在线| 在线观看av中文字幕| 亚洲少妇一区二区| 欧美日韩高清在线一区| 91免费观看国产| 一区二区在线观看av| 免费91在线观看| 亚洲一区二区免费在线观看| 99re热这里只有精品视频| 17c国产在线| 91小仙女jk白丝袜呻吟| 2019国内自拍| 青娱乐在线免费视频| 成人免费精品视频| 99精品在线观看| 婷婷中文字幕一区三区| 26uuu精品一区二区在线观看| 欧美亚洲人成在线| 91国偷自产中文字幕久久| 日本韩国欧美精品大片卡二| 菠萝蜜视频网站入口| 天天射天天操天天干| 97欧洲一区二区精品免费| 日韩小视频在线观看专区| 佐山爱痴汉视频一区二区三区| 久久久久亚洲蜜桃| 日韩精品在线一区二区| 国产精品久久久久久久乖乖| 91麻豆国产自产在线观看亚洲| 青青操视频在线| 2019中文字幕在线视频| 中文字幕日本人妻久久久免费| www.成人av| 久久人人97超碰国产公开结果| 少妇免费视频| 国模 一区 二区 三区| av蓝导航精品导航| 九色综合婷婷综合| 先锋影音男人资源| 激情综合网五月激情| 久久久久久国产免费| 国产精品x8x8一区二区| 伊人久久影院| 高潮无码精品色欲av午夜福利| 亚洲一区二区三区午夜| 亚洲免费av片| 欧美大香线蕉线伊人久久国产精品| 欧美激情视频一区二区三区在线播放| 91看片淫黄大片一级| 久久99999| 制服丝袜影音先锋| 中文字幕日韩一区二区三区不卡| 日本三级中国三级99人妇网站| 欧美日韩亚洲网| 国产精品毛片无码| 91女人视频在线观看| 国产精品视频白浆合集| 91精品国产乱码久久久久久| 97视频免费在线观看| 波多野结衣久久精品| www.99久久热国产日韩欧美.com| 国产精品久久电影观看| www.激情五月| 日日躁夜夜躁白天躁晚上躁91| 久久久久久无码午夜精品直播| 午夜不卡久久精品无码免费| 可以看美女隐私的网站| 国产一区二区99| 你懂的在线观看| 99re6这里有精品热视频| 久久er精品视频| 韩国三级电影一区二区| 色呦呦在线观看视频| 国产精品免费电影| 99精品在线观看| 国产精品揄拍500视频| 日韩大陆欧美高清视频区| 99精品视频精品精品视频| 精品日韩美女| 日韩视频在线观看| 日韩高清国产一区在线观看| 天堂网成人在线| 影音先锋成人在线电影| 午夜成年女人毛片免费观看| 蜜桃av麻豆av天美av免费| 国产精品久久a| porn视频在线观看| 厕沟全景美女厕沟精品| 欧美成人亚洲| 可以在线看的av网站| 中文字幕+乱码+中文乱码www| 麻豆91在线观看| 卡一卡二卡三在线观看| 亚洲国产一区二区在线观看| 91tv在线观看| 久久精品国产成人精品| yiren22综合网成人| 五月婷婷丁香六月| 午夜在线播放视频欧美| 欧美三级不卡| 久久综合亚洲色hezyo国产| 国产一区在线电影| 在线观看成人动漫| 国产精品三级a三级三级午夜| 国产精品乱码| 国产成人精品一区二区三区网站观看| 精品国产区在线| 五月久久久综合一区二区小说| 亚洲欧洲成人精品av97| 伊人久久综合97精品| 亚洲电影二区| 洋洋av久久久久久久一区| 日韩精品欧美激情一区二区| 97人妻精品一区二区三区视频| 男人添女荫道口图片| 91亚洲欧美激情| av不卡在线播放| 性欧美xxxx大乳国产app| 欧美在线观看一区二区三区| 人人爽久久涩噜噜噜网站| 亚洲欧洲高清在线| 92国产精品久久久久首页| 美女网站色精品尤物极品姐弟| 国产一级二级在线观看| 污污内射在线观看一区二区少妇| 久九九久频精品短视频| 激情图片小说一区| 草莓污污视频在线观看| 一日本道久久久精品国产| 黑丝一区二区| 综合天堂av久久久久久久| 无人视频在线观看免费| 奇米精品一区二区三区四区| 亚洲成年电人电影网站| 日本高清无吗v一区| 日韩精品一区二区三区高清免费| 日本高清不卡三区| 国产精品久久观看| 1769国内精品视频在线播放| 五月天亚洲激情| 日本一区二区三级电影在线观看| 欧美一级久久久| 国产精品自拍片| 久久精品无码一区二区三区毛片| 天天色棕合合合合合合合| 最新国产露脸在线观看| 国产不卡一区二区在线播放| 噜噜噜久久亚洲精品国产品麻豆| 亚洲综合日韩| 亚洲综合在线一区| 加勒比av在线播放| 99久久精品免费看国产交换| 午夜精品偷拍| 先锋影音av网站| 最新欧美人z0oozo0| 国内精品久久久久久久果冻传媒| 中文字幕人妻一区二区三区在线视频| 一级日本在线| 日本片在线观看| 91午夜精品亚洲一区二区三区| 成人免费福利| 久久久亚洲欧洲日产国码aⅴ| 99精品国产99久久久久久97| 中文字幕 亚洲视频| 日韩一区二区三区在线| 日本午夜小视频| 亚洲av综合色区| 亚洲高清福利| 丝袜a∨在线一区二区三区不卡| 欧美美女一区二区在线观看| 国产精品剧情一区二区在线观看| 亚洲国产精品久久久久婷婷软件| 亚洲一区二区自拍偷拍| 五月婷婷丁香综合网| 美女的胸无遮挡在线观看| 亚洲一区二区欧美激情| 亚洲精华国产精华精华液网站| 色综合天天综合给合国产| 污视频在线免费观看| av亚洲精华国产精华| 欧美亚洲在线播放| 国产一区二区不卡在线| 一区二区三区波多野结衣在线观看| 国产精品7m凸凹视频分类| 一区二区久久久| 国产理论在线观看| 国产精品白嫩初高中害羞小美女| 麻豆成人在线视频| 97神马电影| 亚洲精品午夜国产va久久成人| 女同性恋一区二区三区| 日本va中文字幕| 交视频在线观看国产| av今日在线| 麻豆91蜜桃| 四虎永久精品在线| 狂野欧美性猛交xxxx| 韩国理伦片久久电影网| 亚洲国产精品va在线观看黑人| 影音先锋在线中文| 91精品国产91久久综合| 久久国产香蕉视频| 久久久久久蜜桃| 菠萝菠萝蜜网站| 国产女主播一区| 久久亚洲图片| 性欧美8khd高清极品| 国产亚洲精品自在久久| 免费成人结看片| 91精品国产综合久久久蜜臀粉嫩| 日本理论片2828理论片| 亚洲天堂av综合网| 青青草国产成人av片免费| 在线成人精品视频| 日韩脚交footjobhdboots| www.99.热| 亚洲欧美日韩国产综合| 影音先锋日韩| 综合视频在线观看| 亚洲国产精华液| 日韩视频在线观看一区二区三区| 国产精品一区二区亚洲| 欧美一区二区黄片| 久久午夜夜伦鲁鲁一区二区| 小明精品国产一区二区三区| 国产一级理论片| 国产乱码精品一区二区三区卡| 日韩成人免费在线观看| 亚洲精品aaa| 性疯狂做受xxxx高清视频| 免费在线成人激情电影| 玩弄japan白嫩少妇hd| 亚洲精品一卡二卡三卡四卡| 天堂va欧美ⅴa亚洲va一国产| 亚洲成人蜜桃| 日本aⅴ精品一区二区三区| 亚洲一区综合| 欧洲国产精品| 国产精品乱人伦中文| 在线免费观看一区二区三区| 午夜视频在线观看免费视频| 日韩一区二区三区免费| 亚洲狼人精品一区二区三区| 在线sese| 99riav视频在线观看| av影音资源网| 亚洲av无码一区二区三区网址| 成看片vvv222| 另类专区欧美蜜桃臀第一页| 超碰91在线观看| 日韩一区二区视频在线观看| 久久久久亚洲av无码专区桃色| 国产特黄大片aaaa毛片| 1024免费在线视频| 日韩精品久久久久久久| 久久99精品国产麻豆不卡| 色综合中文字幕| 色偷偷888欧美精品久久久| 欧美不卡一区二区| 久草在线视频精品|