一、證書作用
SSL證書屬於數字證書的一種,類似於駕駛證、護照。遵循SSL協議,由信任的數字證書頒發機構CA在驗證服務器身份後頒發;
SSL證書的好處:參考鏈接https://baijiahao.baidu.com/s?id=1610739873505104305&wfr=spider&for=pc
SSL證書將會帶來前所未有的安全加密和更快速的訪問體驗
1 防止中間人流量劫持
2 Https加密使網站更安全
3 保障用戶隱私信息安全
4 幫助用戶識別釣魚網站
5 http將被標記“不安全”
6 提升搜索排名
7 提升公司形象和可信度
二、SSL證書製作
1、SSL證書製作依靠openssl,首先檢查OpenSSL:一般centos7上默認裝好了
[root@zq testzq]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
2、生成私鑰和自簽名的SSL證書:
2.1、生成私鑰,參數genrsa:生成RSA私鑰;-des3:des3算法;-out server.pass.key:生成的私鑰文件名;2048:私鑰長度
[root@zq testzq]# openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long modulus
.............................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key: #輸入一個4位以上的密碼[root@zqtestzq]# ll
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件2.2、去除私鑰中的密碼
[root@zq testzq]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key[root@zq testzq]# ll
-rw-r--r-- 1 root root 1679 1月 20 11:01 server.key #無密碼的私鑰文件
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件2.3、生成CSR(證書籤名請求文件)
[root@zq testzq]# openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"
參數說明:# req 生成證書籤名請求
# -new 新生成
# -key 私鑰文件
# -out 生成的CSR文件
# -subj 生成CSR證書的參數
2.4、生成自簽名的SSL證書
[root@zq testzq]# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt #-days:證書有限期(天)
Signature ok
subject=/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn
Getting Private key[root@zq testzq]# ll
-rw-r--r-- 1 root root 1241 1月 20 11:00 server.crt #自簽名的SSL證書
-rw-r--r-- 1 root root 1021 1月 20 11:00 server.csr #簽名文件
-rw-r--r-- 1 root root 1679 1月 20 11:01 server.key #無密碼的私鑰文件
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件
三、在服務端配置ssl.conf
server {
listen 8443;
ssl on;
ssl_certificate /home/testzq/server.crt; #配置已簽名的SSL證書.crt
ssl_certificate_key /home/testzq/server.key; #配置已簽名的證書私鑰.key
.............................................
server {
listen 443;
ssl on;
ssl_certificate /home/testzq/server.crt;
ssl_certificate_key /home/testzq/server.key;
重啓nginx服務:
[root@zq testzq]# service nginx restart
Redirecting to /bin/systemctl restart nginx.service
四、驗證證書是否配置成功
兩種方法:
1、瀏覽器直接查看
2、服務端使用OpenSSL工具查看
4.1、瀏覽器直接查看
4.2、服務端使用OpenSSL工具,執行如下命令 openssl x509 -in diserver.crt -noout -dates即可看到證書的有效起止時間
[root@zq]# openssl x509 -in diserver.crt -noout -dates
notBefore=Jan 20 06:53:09 2020 GMT
notAfter=Jan 18 06:53:09 2025 GMT
注:自簽名的SSL證書存在安全隱患,在生產環境上需要購買和使用經權威機構認證和辦法的證書