一:安裝依賴
Ubuntu:
apt-get install openssl-devel
apt-get install libssl-dev
centos:
apt-get install openssl-devel
apt-get install openssl
二:編譯nginx
查看 nginx 是否安裝 http_ssl_module
模塊
$ /nginx/nginx/sbin/nginx -V
如果出現 configure arguments: --with-http_ssl_module
, 則已安裝(下面的步驟可以跳過,進入 nginx.conf
配置)
下載nginx安裝包
# 下載安裝包到 opt 目錄 $ cd /opt $ wget http://nginx.org/download/nginx-1.14.1.tar.gz
解壓安裝包
$ tar -zxvf nginx-1.14.1.tar.gz
配置ssl模塊
$ cd nginx-1.14.1 $ ./configure --prefix=/opt/nginx --with-http_ssl_module
使用 make 命令編譯(使用make install會重新安裝nginx),此時當前目錄會出現 objs 文件夾。用新的 nginx 文件覆蓋當前的 nginx 文件。
$ cp ./objs/nginx /opt/nginx/sbin/
再次查看安裝的模塊(configure arguments: --with-http_ssl_module
說明ssl模塊已安裝)
$ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.14.1 ... configure arguments: --with-http_ssl_module
三:生成證書
進入你想創建證書和私鑰的目錄
cd /usr/local/nginx
創建服務器私鑰,命令會讓你輸入一個口令(記住這個密碼,以後每次重啓nginx需要輸入密碼,建議接下來的密碼都輸入一樣的,方便記憶)
openssl genrsa -des3 -out server.key 1024
創建簽名請求的證書(CSR)
openssl req -new -key server.key -out server.csr
需要設置相關的信息
最後標記證書使用上述私鑰和CSR
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
四:配置nginx
打開nginx.conf配置
添加ssl配置
server {
listen 443 ssl;
server_name work.com;
index index.html;
ssl on;
ssl_certificate /usr/local/nginx /server.crt;
ssl_certificate_key /usr/local/nginx /server.key;
ssl_session_timeout 5m;
location / {
root /usr/local/web/;
add_header 'Cache-Control' 'no-store';
}
}
五:測試