Linux+nginx實現Https和http
阿新 • • 發佈:2018-12-22
安裝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;
#其他就不貼出來了
}