1. 程式人生 > >Linux+nginx實現Https和http

Linux+nginx實現Https和http

安裝nginx:

1.下載安裝包:

http://nginx.org/en/download.html 上傳放入安裝包資料夾

2.安裝之前檢查安裝依賴是否完善:

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
-y  :跳過詢問一律 為yes

3.解壓原始碼壓縮包:

tar zxf nginx-1.10.1.tar.gz 

4.安裝:./configure –prefix=/usr/nginx –with-http_ssl_module

 --prefix:指定安裝位置
 --with-http_ssl_module編譯ssl 預設不編譯

5.編譯: make && make install

&&:兩個一起執行

6.安裝完成

啟動:sbin目錄下面 ./nginx
    啟動後檢視執行狀態:ps aux|grep nginx
停止:sbin目錄下面 ./nginx -s stop
重啟:sbin目錄下面 ./nginx -s reload

建立key檔案

建立根證書的私匙

openssl genrsa -out ssl.key 2048

利用私鑰建立簽名請求

openssl req -new -subj "/C=CH/ST=SH/L=SH/O=CompanyName/OU=ssl.com/CN=ssl.com"
-key ssl.key -out ssl.csr

說明:這裡/C表示國家(Country),只能是國家字母縮寫,如CN、US等;/ST表示州或者省(State/Provice);/L表示城市或者地區(Locality);/O表示組織名(Organization Name);/OU其他顯示內容,一般會顯示在頒發者這欄。

將帶口令的私鑰移除(否者每次啟用nginx都會輸入口令)

mv ssl.key ssl.origin.key 
openssl rsa -in ssl.key -out ssl.key

用Key簽名證書

openssl x509 -req -days 3650 -in ssl.csr
-signkey test.imdst.com.key -out ssl.crt

為HTTPS準備的證書需要注意,建立的簽名請求的CN必須與域名完全一致,否則無法通過瀏覽器驗證

私鑰建立簽名:CN:ssl 改為:域名

修改nginx.conf檔案中的server:

 server {
        listen       80;
        listen       443 ssl;
        server_name  api.sharebo.cn;
        ssl_certificate      /usr/auth/sharebo.crt;
        ssl_certificate_key  /usr/auth/sharebo.key;
        #其他就不貼出來了
      }