Nginx配置多個(gè)HTTPS域名的方法
最近在玩微信小程序,手頭有:
- 一臺(tái)云服務(wù)器:CentOS 7
- 多個(gè)一級(jí)域名
開發(fā)測(cè)試過(guò)程中,因?yàn)槟承┰?,想要讓手頭的A、B域名同時(shí)指向云服務(wù)器的443端口,支持HTTPS。
Nginx支持TLS協(xié)議的SNI擴(kuò)展(同一個(gè)IP上可以支持多個(gè)不同證書的域名),只需要重新安裝Nginx,使其支持TLS即可。
安裝Nginx
[root]# wget http://nginx.org/download/nginx-1.12.0.tar.gz [root]# tar zxvf nginx-1.12.0.tar.gz [root]# cd nginx-1.12.0 [root]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module \ --with-openssl=./openssl-1.0.1e \ --with-openssl-opt="enable-tlsext"
備注:在安裝的過(guò)程中發(fā)現(xiàn),云服務(wù)器的環(huán)境中缺少一些庫(kù),下載后,重新執(zhí)行Nginx的./configure
指令,具體操作如下:
[root]# wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz [root]# tar zxvf pcre-8.35 [root]# yum -y install gcc [root]# yum -y install gcc-c++ [root]# yum install -y zlib-devel [root]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module \ --with-openssl=./openssl-1.0.1e \ --with-openssl-opt="enable-tlsext" \ --with-pcre=./pcre-8.35
配置Nginx
在購(gòu)買域名的時(shí)候,如果域名提供商有免費(fèi)的SSL證書,就直接用;如果沒有的話,可以使用 Let's Encript 生成免費(fèi)的CA證書。
打開Nginx的配置:vi /etc/nginx/nginx.conf
... server { listen 443 ssl; listen [::]:443 ssl; server_name abc.com; root /usr/share/nginx/html; ssl_certificate "/root/keys/abc.com.pem"; ssl_certificate_key "/root/keys/abc.com.private.pem"; include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } server { listen 443 ssl; listen [::]:443 ssl; server_name def.com; root /usr/share/nginx/html; ssl_certificate "/root/keys/def.com.pem"; ssl_certificate_key "/root/keys/def.com.private.pem"; include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
配置完成后,重新加載Ngixn:nginx -s reload
申請(qǐng)免費(fèi)的CA證書
對(duì)于沒有SSL證書的情況,可以用下面的方法免費(fèi)獲得CA證書——Let's Encript。
步驟1: 安裝 Let's Encrypt 官方客戶端——CetBot
[root]# yum install -y epel-releasesudo [root]# yum install -y certbot
步驟2: 配置Nginx的配置文件,在 Server 模塊(監(jiān)聽80端口的)添加下面配置:
CertBot在驗(yàn)證服務(wù)器域名的時(shí)候,會(huì)生成一個(gè)隨機(jī)文件,然后CertBot的服務(wù)器會(huì)通過(guò)HTTP訪問你的這個(gè)文件,因此要確保你的Nginx配置好,以便可以訪問到這個(gè)文件。
server { listen 80 default_server; ... location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ { return 404; } }
重新加載Nginx: nginx -s reload
步驟3: 申請(qǐng)SSL證書
[root]# certbot certonly --webroot -w /usr/share/nginx/html/ -d your.domain.com
安裝過(guò)程中,會(huì)提示輸入郵箱,用于更新CA證書的。
安裝成功后,默認(rèn)會(huì)在 /etc/letsencrypt/live/your.domain.com/
會(huì)生成CA證書。
|-- fullchain.pem |-- privkey.pem
步驟4: 配置Nginx
server { listen 443 ssl; listen [::]:443 ssl; server_name def.com; root /usr/share/nginx/html; ssl_certificate "/etc/letsencrypt/live/your.domain.com/fullchain.pem"; ssl_certificate_key "/etc/letsencrypt/live/your.domain.com/privkey.pem"; include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
配置完,重新加載Nginx
步驟5: 自動(dòng)更新證書
在命令行先進(jìn)行模擬更新證書
certbot renew --dry-run
如果模擬更新成功,則 使用 crontab -e 命令來(lái)啟用自動(dòng)更新任務(wù):
[root]# crontab -e 30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
相關(guān)參考
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Nginx實(shí)現(xiàn)根據(jù)域名http、https分發(fā)配置示例
- 詳解Nginx服務(wù)器中配置全站HTTPS安全連接的方法
- 詳解Nginx配置SSL證書實(shí)現(xiàn)Https訪問
- Nginx配置https的實(shí)現(xiàn)
- nginx配置SSL證書實(shí)現(xiàn)https服務(wù)的方法
- Nginx配置SSL證書部署HTTPS網(wǎng)站的方法(頒發(fā)證書)
- 詳解nginx如何配置HTTPS
- nginx配置ssl證書實(shí)現(xiàn)https訪問的示例
- nginx配置ssl實(shí)現(xiàn)https訪問的步驟(適合新手)
- Nginx同時(shí)支持Http和Https的配置詳解
- nginx開啟https配置之后網(wǎng)頁(yè)無(wú)法訪問的問題處理解決
相關(guān)文章
使用nginx正向代理實(shí)現(xiàn)內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)過(guò)程解析
這篇文章主要介紹了使用nginx正向代理實(shí)現(xiàn)內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Nginx實(shí)現(xiàn)會(huì)話保持的兩種方式
在我們做Nginx負(fù)載均衡的時(shí)候經(jīng)常會(huì)遇到會(huì)話保持的問題,為了保證同一用戶session會(huì)被分配到同一臺(tái)服務(wù)器上,這時(shí)就需要會(huì)話保持,本文介紹了兩種方法,感興趣的可以了解一下2022-03-03服務(wù)器nginx配置ssl并http重定向到https方式
這篇文章主要介紹了服務(wù)器nginx配置ssl并http重定向到https方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12FastDFS+Nginx如何搭建本地服務(wù)器并實(shí)現(xiàn)遠(yuǎn)程訪問
FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),它對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題,這篇文章主要介紹了FastDFS+Nginx搭建本地服務(wù)器并實(shí)現(xiàn)遠(yuǎn)程訪問,需要的朋友可以參考下2023-11-11Linux下Nginx負(fù)載均衡多個(gè)tomcat配置的方法步驟
這篇文章主要介紹了Linux下Nginx負(fù)載均衡多個(gè)tomcat配置的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04使用nginx進(jìn)行負(fù)載均衡的搭建全過(guò)程
負(fù)載均衡用于從“upstream”模塊定義的后端服務(wù)器列表中選取一臺(tái)服務(wù)器接受用戶的請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于使用nginx進(jìn)行負(fù)載均衡的搭建全過(guò)程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08NGINX服務(wù)器配置404錯(cuò)誤頁(yè)面轉(zhuǎn)向的方法
這篇文章主要為大家詳細(xì)介紹了NGINX服務(wù)器配置404錯(cuò)誤頁(yè)面轉(zhuǎn)向的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12