1. 程式人生 > >Linux配置https服務

Linux配置https服務

首先說明一點,並不是僅僅配置就可以使用真正的https服務,因為需要向證書頒發機構申請SSL證書

首先生成私鑰和csr檔案

切換到某個目錄,在linux機器上執行以下命令生成私鑰

openssl genrsa -out server.key 2048

然後在linux機器上執行以下命令生成csr檔案

openssl req -new -key server.key -out certreq.csr

以下標識文字僅供參考,請根據商戶自己實際情況進行填寫

Country Name: CN                      //您所在國家的ISO標準代號,中國為CN

State or Province Name:beijing       //您單位所在地省/自治區/直轄市

Locality Name:beijing                //您單位所在地的市/縣/區

Organization Name: liminghulian                //您單位/機構/企業合法的名稱 

Organizational Unit Name: dev         //部門名稱 

Common Name: www.liminghulian.com     //通用名,例如:www.liminghulian.com。此項必須與您訪問提供SSL服務的伺服器時所應用的域名完全匹配。

Email Address:                          //您的郵件地址,不必輸入,直接回車跳過

"extra"attributes                        //以下資訊不必輸入,回車跳過直到命令執行完畢。

執行上面的命令後,在當前目錄下即可生成私鑰檔案server.key和certreq.csr csr檔案

以騰訊雲的伺服器作為參考

 

 

 

 

然後按要求把解析域名配置好,最後會得到以下介面

把證書下載下來會得到nginx中的兩個檔案如圖

將這兩個檔案放到自己定義的目錄,這裡我放到的目錄是  /https/ 

配置參考如下:

server {
    listen 443;
    server_name mobai.luomengyuan.cn;
    access_log /data/wwwlogs/access_nginx.log combined;
    root /data/wwwroot/mobaidanche/laravel/public;
    index index.html index.htm index.php;
    ssl on;    #開啟ssl支援

    ssl_certificate      /https/1_mobai.luomengyuan.cn_bundle.crt;    #指定伺服器證書路徑

    ssl_certificate_key  /https/2_mobai.luomengyuan.cn.key;    #指定私鑰證書路徑

    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     #指定SSL伺服器端支援的協議版本

    ssl_ciphers ECDHE-RSA-AES128-GCM- 
    SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

    ssl_prefer_server_ciphers   on;
    location ~ [^/]\.php(/|$) {
      #fastcgi_pass remote_php_ip:9000;
      fastcgi_pass unix:/dev/shm/php-cgi.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
      #pathinfo 支援開始  以上配置資訊根據實際情況配置
      fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
      #pathinfo 支援結束
   }
   location / {
                        #如果沒有找到請求的檔案
                       if (!-e $request_filename){
                            #rewrite ^(.*)$ /index.php?s=/$1 last;
                            #重寫   正則匹配   重定向後的地址
                            rewrite ^(.*)$ /index.php/$1 last;
                        }
        }
}

做完以上工作後測試nginx配置檔案無誤後重新載入配置,如果需要配置通過http訪問時自動跳轉到https 可以在80埠對應的虛擬主機配置中設定

server {
    listen 80;
    server_name mobai.luomengyuan.cn; 
    rewrite ^(.*) https://mobai.luomengyuan.cn$1 permanent;
}