什么是CA:
CA, Certificate Authority 即頒發數字證書的機構。是負責發放和管理數字證書的權威機構,并作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。
打個比方來說,a和b在進行交易,a不太信任b,害怕b交易后劫票,同樣b也不太信任a,害怕a交易后反水。他們彼此都不信任,交易也就很難進行。這個時候來個c,c說“我來給你們做擔保,但是你們倆要信任我.....”,最后三方達成一致完成了交易。
什么是HTTPS:
是以安全為目標的HTTP通道,簡單講是HTTP的安全版,https協議需要到ca申請證書,一般免費證書很少,需要交費。
軟件:
系統:centos7.6
nginx:nginx/1.16.1
安裝WEB服務器(NGINX):
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y nginx
生成CA證書
如果只有一臺主機的話先執行服務端命令后執行客戶端命令
服務端:
1. 生成私鑰
cd /etc/pki/CA
openssl genrsa -out private/cakey.pem 1024
genrsa 生成rsa參數
-out 生成文件保存路徑
1024 生成key的長度
openssl命令詳解
2. 自簽名證書
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
#輸入命令以后會依次讓你輸入ca的一些信息,如下
Country Name 國家代碼:cn
State or Province Name 所在省份:beijign
Locality Name 所在城市:beijing
Organization Name 組織或公司名稱:hengheihahei
Organizational Unit Name 所在部門名稱:yunwei
Common Name 用戶或主機名:lemon
Email Address 郵箱地址:xxxx@163.com
#以上內容根據自己情況輸入
-new 新創建個
-x509 使用x509結構
-key key所放路徑
-out 生成文件輸出路徑
-days 證書有效時間
客戶端:
1. 生成私鑰
openssl genrsa -out nginx.key -des 1024
-des 指明用什么加密算法把我們的私有密鑰加密(此項可以不寫)
2. 生成證書申請文件
openssl req -new -key nginx.key -out app.csr
注意:配置信息要與之前的前三項保持一致,Common Name 必須要寫
3. 將申請文件發送給服務端
scp app.csr 192.168.30.99:/etc/pki/CA
注意,如果只有一臺主機,此步驟可以不執行
頒發證書:
#在服務端執行
touch ./index.txt #不創建或提示錯誤,生成證書索引數據庫文件
echo 00 > ./serial #00可以自己指定,指定第一個頒發證書的序列號
openssl ca -in app.csr -out certs/app.crt -days 100
#提示全輸y
然后把證書發送到客戶端就行
配置NGINX:
#在nginx的server配置段,添加如下配置
server {
server_name www.luckynm.cn;
listen 443;
ssl on;
ssl_certificate /etc/pki/CA/certs/app.crt;
ssl_certificate_key /etc/pki/CA/nginx.key;
}
配置生效:
nginx -s reload