一:安装依赖
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';
}
}
五:测试