使用nginx搭建https服務器


最近在研究nginx,整好遇到一個需求就是希望服務器與客戶端之間傳輸內容是加密的,防止中間監聽泄露信息,但是去證書服務商那邊申請證書又不合算,因為訪問服務器的都是內部人士,所以自己給自己頒發證書,忽略掉瀏覽器的不信任警報即可。下面是頒發證書和配置過程。

首先確保機器上安裝了openssl和openssl-devel

#yum install openssl
#yum install openssl-devel

然后就是自己頒發證書給自己

#cd /usr/local/nginx/conf
#openssl genrsa -des3 -out server.key 1024
#openssl req -new -key server.key -out server.csr
#openssl rsa -in server.key -out server_nopwd.key
#openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

至此證書已經生成完畢,下面就是配置nginx

server {
    listen 443;
    ssl on;
    ssl_certificate  /usr/local/nginx/conf/server.crt;
    ssl_certificate_key  /usr/local/nginx/conf/server_nopwd.key;
}

然后重啟nginx即可。

ps: 如果出現“[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:74”則說明沒有將ssl模塊編譯進nginx,在configure的時候加上“--with-http_ssl_module”即可^^

至此已經完成了https服務器搭建,但如何讓瀏覽器信任自己頒發的證書呢?

今天終於研究搗鼓出來了,只要將之前生成的server.crt文件導入到系統的證書管理器就行了,具體方法:

控制面板 -> Internet選項 -> 內容 -> 發行者 -> 受信任的根證書頒發機構 -> 導入 -》選擇server.crt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM