最近在研究nginx,整好遇到一個需求就是但願服務器與客戶端之間傳輸內容是加密的,防止中間監聽泄露信息,可是去證書服務商那邊申請證書又不合算,由於訪問服務器的都是內部人士,因此本身給本身頒發證書,忽略掉瀏覽器的不信任警報便可。下面是頒發證書和配置過程。html
首先確保機器上安裝了openssl和openssl-develnginx
#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」便可^^spa
至此已經完成了https服務器搭建,但如何讓瀏覽器信任本身頒發的證書呢?code
今天終於研究搗鼓出來了,只要將以前生成的server.crt文件導入到系統的證書管理器就好了,具體方法:server
控制面板 -> Internet選項 -> 內容 -> 發行者 -> 受信任的根證書頒發機構 -> 導入 -》選擇server.crthtm