溫馨提示×

溫馨提示×

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

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

本地HTTPS環(huán)境搭建的完整步驟記錄

發(fā)布時(shí)間:2020-08-24 11:10:09 來源:腳本之家 閱讀:138 作者:zhangfe 欄目:服務(wù)器

前言

之前在為公司的應(yīng)用添加 https 時(shí),是在 nginx 上配置的,這樣不需要 node 做額外的開發(fā),但是組內(nèi)的開發(fā)同學(xué)本地一直沒有配置,一直是采用 http 的方式開發(fā)和測試。最近發(fā)現(xiàn)有些 case 需要 https 來復(fù)現(xiàn),比如 Android 5.0 以上的 app 內(nèi),使用 https 的網(wǎng)站訪問 http 的內(nèi)容會(huì)阻止訪問,這種問題測試的時(shí)候本地就需要一個(gè) https 的環(huán)境。于是花了點(diǎn)時(shí)間學(xué)習(xí)了下本地 https 的搭建,在這里記錄一下。下面話不多說了,來一起看看詳細(xì)的介紹吧。

生成證書

本地開發(fā)的證書可以自己生成一個(gè),可以通過以下步驟生成一個(gè)簡單的證書:

首先,進(jìn)入你想創(chuàng)建證書和私鑰的目錄,例如:

$ cd /usr/local/nginx/conf

創(chuàng)建服務(wù)器私鑰,命令會(huì)讓你輸入一個(gè)口令:

$ openssl genrsa -des3 -out server.key 1024

創(chuàng)建簽名請求的證書(CSR):

$ openssl req -new -key server.key -out server.csr

配置https

nginx 的 https 配置很簡答,就是監(jiān)聽 443 端口,并且添加相關(guān)的 ssl 配置。

 server {
   listen 80;
   listen 443;
   
   ssl on;
   ssl_certificate ssl/server.crt;
   ssl_certificate_key ssl/server.key;
   
 }

再配置好你自己的 upstream 和 location 后就可以用 https 訪問了。

這里踩了一個(gè)坑,因?yàn)槲倚枰砑?https 的域名是配了虛擬主機(jī)的,但是我的 ssh 卻沒有在虛擬主機(jī)里添加,導(dǎo)致一開始并不能訪問,這時(shí)候?qū)W習(xí)了一下如何去查 nginx 的問題。

先確認(rèn)不是瀏覽器的問題,確實(shí)是nginx配置問題

wget local.xxx.com ok
wget local.xxx.com:443 cant receive

然后查了一下,nginx有兩種日志,access log 和 error log。

其中 access log 日志記錄了哪些用戶,哪些頁面以及用戶瀏覽器、ip和其他的訪問信息,error log 則是記錄服務(wù)器錯(cuò)誤日志。

我先查了一下nginx的access.log 沒有日志,再查nginx的error.log 有報(bào)錯(cuò)

2017/04/18 14:07:10 [error] 18614#0: *168 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 192.168.2.1, server: 0.0.0.0:443
2017/04/18 14:07:10 [error] 18614#0: *169 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 192.168.2.1, server: 0.0.0.0:443

最后發(fā)現(xiàn)是虛擬主機(jī)中沒配ssh

無法使用http訪問

細(xì)心的朋友可能已經(jīng)看出來了,這個(gè)配置有一點(diǎn)問題,因?yàn)殚_啟了ssl:on,導(dǎo)致使用 http 訪問時(shí)會(huì)報(bào)錯(cuò)

The plain HTTP request was sent to HTTPS port

后續(xù)刪掉了ssl:on這一行,并且對443端口的監(jiān)聽做了一下修改

listen 443 ssl;

mac信任證書的問題

配置完https后,mac 用 chrome 打開時(shí)一直顯示證書不受信任,需要點(diǎn)擊確認(rèn)才能繼續(xù)往下進(jìn)行,并且導(dǎo)致我的 https 的靜態(tài)資源無法訪問,可以用safari打開該網(wǎng)頁后點(diǎn)擊信任

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI