相信很多運(yùn)維的同學(xué)都搞過網(wǎng)站配置HTTPS訪問。本質(zhì)上HTTPS不是一種協(xié)議,,而是在HTTP的基礎(chǔ)上通過傳輸加密和身份認(rèn)證保證了傳輸過程的安全 ,。所以HTTPS 的安全基礎(chǔ)是 SSL。SSL 即 Secure Sockets Layer,,是網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,,主要在傳輸層與應(yīng)用層之間對(duì)網(wǎng)絡(luò)連接進(jìn)行加密。而SSL證書是一種數(shù)字證書,。也經(jīng)常被大家通俗地稱為“HTTPS證書”,、“CA證書”、“服務(wù)器證書”以及“SSL”等,。
#創(chuàng)建私鑰(key) openssl genrsa -out yourdomain.key 2048 #創(chuàng)建證書簽名請(qǐng)求(CSR) openssl req -new -key yourdomain.key -out yourdomain.csr #在執(zhí)行上述命令時(shí),系統(tǒng)會(huì)提示您輸入證書的信息,,例如國(guó)家名稱,、組織名稱、信用證書名稱等,。 #自簽名SSL證書 openssl x509 -req -days 365 -in yourdomain.csr -signkey yourdomain.key -out yourdomain.crt #如果需要生成CA證書(非常復(fù)雜的用途,,如SSL終結(jié)),可以創(chuàng)建一個(gè)新的CA私鑰和公鑰: openssl genrsa -out ca.key 2048 openssl req -new -x509 -days 365 -key ca.key -out ca.crt #使用CA簽名你的SSL證書: openssl x509 -req -days 365 -in yourdomain.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.crt # 這些步驟會(huì)生成私鑰,、CSR和最終的SSL證書,,你可以將yourdomain.crt和yourdomain.key用于你的web服務(wù)器配置SSL,。 mkcert 介紹一句話介紹mkcert:一個(gè)生成本地 HTTPS 加密證書的工具,一個(gè)命令就可以生成證書,,不需要任何配置,,支持Windows、macOS和Linux平臺(tái),。 ?? 項(xiàng)目信息
??功能特性功能特性就一個(gè):一個(gè)命令就可以生成證書,,不需要任何配置。 mkcert 安裝macOSbrew install mkcert brew install nss # if you use Firefox # 或者 sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox Linux
Windowschoco install mkcert # 或者 scoop bucket add extras scoop install mkcert mkcert 使用mkcert 生成證書的命令很簡(jiǎn)單,,如下:
我們模擬一個(gè)HTTPS訪問網(wǎng)站,,網(wǎng)站地址為osm.com:
#創(chuàng)建網(wǎng)站目錄 mkdir -p /opt/https-nginx/cert mkdir -p /opt/https-nginx/etc
vim /opt/https-nginx/index.html # index.html 內(nèi)容如下 <!DOCTYPE html> <html> <head> <title>歡迎頁面</title> <style> body { font-family: Arial, sans-serif; background-color: #f7f7f7; text-align: center; } #welcome { margin: 0 auto; width: 400px; padding: 20px; background-color: #fff; border: 1px solid #ddd; border-radius: 10px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } h1 { color: #555; font-size: 24px; margin-bottom: 20px; } p { color: #666; font-size: 14px; line-height: 1.5; } </style> </head> <body> <div id='welcome'> <h1>歡迎來到有趣的開源集市</h1> <p>分享有趣的開源產(chǎn)品、技術(shù),、市場(chǎng)趨勢(shì)等內(nèi)容,。</p> </div> </body> </html> ~
docker run -d -p 443:443 -v /opt/https-nginx/etc/nginx.conf:/etc/nginx/nginx.conf -v /opt/https-nginx/index.html:/usr/share/nginx/html/index.html -v /opt/https-nginx/cert/:/etc/nginx/ssl/ --name https-nginx nginx:latest
這時(shí)我們發(fā)現(xiàn)雖然啟用了https服務(wù),并且訪問也沒有問題,,但是瀏覽器會(huì)提示連接不安全,。這個(gè)是因?yàn)樵L問的PC上沒有安裝好 CA 證書,需要本地訪問PC安裝CA證書,。
雙擊
最后通過 mkcert 可以快速為個(gè)人或小型網(wǎng)站,、企業(yè)內(nèi)部網(wǎng)站等生成自簽名證書,。與 OpenSSL 相比,mkcert 的使用更加簡(jiǎn)單,,大大簡(jiǎn)化了在內(nèi)網(wǎng)生成SSL證書的復(fù)雜性,。 |
|