自簽名https證書與Ubuntu下的Caddy代理

摘要:介紹如何生成自簽名證書,和在ubuntu下使用Caddy代理,使http網站變爲https

一、生成自簽名證書

這篇文章說的很詳細了https://gist.github.com/cecilemuller/9492b848eb8fe46d462abeb26656c4f8

1、安裝openssl,

windows下,http://slproweb.com/products/Win32OpenSSL.html

window下選最大的

ubuntu下,https://www.openssl.org/source/

說明:即使你的命令行輸入openssl有反應,也建議重裝,因爲很有可能是git或apache的openssl,並不能用於簽名

2、生成CA證書

openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout RootCA.key -out RootCA.pem -subj "/C=US/CN=Example-Root-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt

Example隨便改吧

3、新建domains.ext文件

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
IP.1 = 127.0.0.1
IP.2 = 192.168.1.60
IP.3 = 192.168.1.61

alt_names是你的網站要通過https方式訪問的域名或IP地址

4、生成證書

openssl req -new -nodes -newkey rsa:2048 -keyout localhost.key -out localhost.csr -subj "/C=US/ST=YourState/L=YourCity/O=Example-Certificates/CN=localhost.local"
openssl x509 -req -sha256 -days 1024 -in localhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out localhost.crt

5、其中key和crt文件一般是網站服務器要使用的證書

6、使瀏覽器信任CA證書:谷歌瀏覽器->設置->安全性和隱私->一般是tab3,有一個證書列表,添加證書。過程中彈出的對話框都勾選信任即可。windows用的是RootCA.crt,ubuntu用的是RootCA.pem

7、爲了安全,切勿讓他人得到你的證書

 

二、Caddy開啓HTTPS代理

1、下載Caddy,https://github.com/caddyserver/caddy/releases,找到最新版的releases的asset,windows exe後綴即可,ubuntu 選包含linux的即可

2、caddy是go編寫的,就是一整個文件,ubuntu下添加執行權限。

3、把caddy和簽發的crt,key文件放一塊,再新建Caddyfile如下

https://192.168.1.61:5090

tls ./localhost.crt ./localhost.key

reverse_proxy http://192.168.1.61:9280

第一個是代理端口,第二個是被代理端口

然後啓動:

sudo ./caddy run  --config Caddyfile 

就OK了,通過代理端口訪問即是https訪問

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章