1. 程式人生 > >nginx實現虛擬主機ssl加密,註意此方法只能在公司內部使用

nginx實現虛擬主機ssl加密,註意此方法只能在公司內部使用

nginx 虛擬主機 ssl

實現虛擬主機ssl加密,註意此方法只能在公司內部使用

1,生成證書及私鑰

     - 進入/etc/pki/tls/certs目錄
            cd /etc/pki/tls/certs
     - 執行make +證書名,"註意:文件後綴很重要,輸入什麽將生成什麽文件"
            make a.crt  #.crt後綴,會生成一個a.crt證書文件,a.key私鑰文件
        "註意:這裏生成私鑰文件默認需要輸入密碼,如果不需要密碼有兩個辦法
        ①,修改/etc/pki/tls/certs/Makefile文件
            將%.key:
        umask 77 ;         /usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@ 中的"-aes128"刪掉
        ②,就是私鑰文件生成之後輸入下面的命令將密碼刪掉
            openssl rsa -in a.key -out aa.key"

2,修改配置文件

vim /etc/nginx/nginx.conf
        server {
            listen 443 ssl;
            root /nginx/html/;
            server_name www.a.com;
            index a.html;
            ssl on;
            ssl_certificate /etc/pki/tls/certs/a.crt;
            ssl_certificate_key /etc/pki/tls/certs/a.key;
            ssl_session_cache shared:sslcache:20m;
            ssl_session_timeout 10m;
        }    
            指令解析:
                 ssl_certificate               指定證書文件路徑
                 ssl_certificate_key        指令私鑰文件路徑
                 ssl_session_cache off | none | [builtin[:size]] [shared:name:size];  
                    - builtin[:size]:            使用OpenSSL內建緩存,為每worker進程私有  
                    - [shared:name:size]: 在各worker之間使用一個共享的緩存
                 ssl_session_timeout time;  客戶端連接可以復用ssl session cache中緩存的ssl參數的有效 時長 ,默認5m

3,啟動nginx服務

        ①檢查配置文件
            nginx -t
                        顯示下列信息表示配置文件沒有問題
                        nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
                        nginx: configuration file /etc/nginx/nginx.conf test is successful

        ②啟動服務
            systemctl start nginx 
            systemctl enable nginx

4, 訪問測試,出現面的狀況就表示成功,註意https協議!

技術分享圖片

nginx實現虛擬主機ssl加密,註意此方法只能在公司內部使用