linux系統nginx伺服器上配置https協議
阿新 • • 發佈:2018-11-04
今天工作工作中老闆提出一個要求:http協議不安全,我們需要一個相對安全的協議,
我說:老闆,那用啥子呢?
老闆想了一下:好,就用https,你去在nginx系統上配置一個;
我說:老闆,沒問題;
我的個乖乖,http不好嗎?非得用https,關鍵是沒配過啊,真是愁啊,但當時自己挖的坑怎麼也得跳啊,沒辦法,得找資料啊,和度娘一番雲雨過後,頓時傻眼,我勒個去,https協議得需要一個證書,關鍵是這證書得要錢啊,關鍵是小弟窮啊,於是把這件事和老闆彙報的一下。
於是老闆語重心長的說道:小x啊,你就不能自己生成一個證書;
當時腦袋頓時如遭五雷轟頂,臥槽,還有這種操作,於是又找度娘梅開兩度,額,你還真別說,還真有!然後就站在前輩的肩膀上自己嘗試著搗鼓一下,順便寫一點心得體會,與各位道友分享:
好,走:
進入linux系統,編譯命令:/usr/local/nginx/sbin/nginx -V
如上圖紅色下劃線,確保有紅色方框中的這些引數;
如果沒有,那也沒關係,執行編譯命令: ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module (注意,此時的編譯位置是:[[email protected] nginx-1.12.2])表示你沒有匯入pcre library,那麼執行匯入命令: yum install pcre pcre-devel -y 重新編譯, 此時,又會出現如下錯誤: 表示沒有匯入openSSL library,那麼到入即可: yum install openssl openssl-devel -y 再次重新編譯,再執行命令: make make install 再建立伺服器私鑰: openssl genrsa -des3 -out server.key 1024 此時,會出現如下需要輸入server.key:直接回車即可; 建立簽名請求的證書: openssl req -new -key server.key -out server.csr 要求輸入一些國家,省份,城市等等, 隨便輸入即可; 此時,輸入命令: ll 可以看到ssl檔案下多出瞭如下檔案:
其中server,crt即為自生成的https證書;
然後,我們需要在nginx.conf配置檔案中配置證書檔案的路徑: cd /usr/local/nginx/conf 紅框即為配置檔案,修改之前,最好備份: cp nginx.conf bak_nginx.conf然後輸入如下命令進入配置檔案: vim nginx.conf 找到如下位置: 這裡即為https的引數位置,新增如下資訊: server{ listen 80; listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/ssl/server.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/server_nopassword.key; fastcgi_param HTTPS $https if_not_empty; #有https協議時自動使用https,否則忽略這個引數。 } 劃紅框的即為server.crt證書檔案的路徑; 然後,回到sbin目錄下: cd /usr/local/nginx/sbin 啟動nignx: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
然後開啟瀏覽器,輸入: https://192.168.23.129 (注:不同的電腦ip不同)
此時, https證書匯入成功。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
然後, 又過了幾天, 公司在阿里雲買了臺伺服器, 又讓我在阿里雲的伺服器上配置一個nginx, OMG, 這幾天白乾了,好吧, 裝nginx和在虛擬機器上一樣, 只是需要在阿里雲伺服器上進行如下操作即可:按順序點選紅框所示即可。 這裡只需輸入如上,如下紅框的內容即可;
最後,就OK了!!!