基於Nginx的https服務(ssl證書製作)

 

一、證書作用

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證書存在安全隱患,在生產環境上需要購買和使用經權威機構認證和辦法的證書

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