1. 程式人生 > >apache和nginx開啟https之旅

apache和nginx開啟https之旅

1、這是apache開啟https但是沒有認證、nginx開啟免費認證按照下面流程。

    1.安裝mod_ssl和openssl  
    yum -y install mod_ssl openssl  
    2.建立伺服器金鑰  
    mkdir /etc/httpd/conf.d/ssl.key/  
    cd /etc/httpd/conf.d/ssl.key/  
    openssl genrsa -out server.key 1024   
    3.建立伺服器公鑰  
    openssl req -new -key server.key -out server.csr  
    4.建立伺服器證書   
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt  
    5.最後對/etc/httpd/conf.d/ssl.conf 進行修改:將SSLCertificateFile和SSLCertificateKeyFile改成如下  
    SSLCertificateFile /etc/httpd/conf.d/ssl.key/server.cert  
    SSLCertificateKeyFile /etc/httpd/conf.d/ssl.key/server.key  
    6.重啟apache  
    7.高階-》繼續訪問  

1.第一步
   配置一個https站點需要有一個ssl的證書,我們可以到以下網址去申請一個免費的ssl證書:
https://buy.wosign.com/Free/#ssl   

2.第二步
有了ssl的證書後,我們可以將需要的伺服器型別的壓縮包解壓後上傳到伺服器中。一共有兩個檔案,一個是.crt檔案,還有一個是.key檔案。

3.第三步
在原有的nginx的server配置中新增以下內容:

    listen       443 ssl;    
    server_name  xxx; #你的域名    
    ssl                  on;    
    ssl_certificate      xxx; #crt檔案位置    
    ssl_certificate_key     xxx;#key檔案位置    
    ssl_session_timeout  5m;    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    
    ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;    
    ssl_prefer_server_ciphers   on;   

然後重啟nginx,關閉瀏覽器並且清空快取,就能夠用https訪問網站啦!

4.第四步
你可能會發現現在用http進不去網站了!怎麼辦呢?很簡單,只要新增以下配置即可!

server {    
        listen 80;    
        listen [::]:80 ssl ipv6only=on;    
        server_name   xxx;#域名    
        return 301 https://xxx$request_uri; #xxx為你的域名    
}  

這樣,使用者即使不輸入https,輸入http也能訪問了,所有連線都會被重定向到https頁面!