nginx安装
- 依赖安装:
#检查依赖包是否安装 举例
dpkg -l | grep zlib
#依赖包openssl安装
sudo apt-get install openssl libssl-dev
#依赖包pcre安装
sudo apt-get install libpcre3 libpcre3-dev
#依赖包zlib安装
sudo apt-get install zlib1g-dev
- 安装
tar -xvf nginx-1.14.0.tar.gz
mv nginx-1.14.0/ nginx
cd nginx/
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install
- 启动
cd /usr/local/nginx
#启动命令
./sbin/nginx
#停止
./sbin/nginx -s stop
#重启
./sbin/nginx -s reload
#检测nginx配置是否正常
./sbin/nginx -t
证书制作
- 制作CA证书
#生成CA私钥
openssl genrsa -des3 -out ca.key 2048
#输入密码123456
# ca.crt CA根证书(公钥)
openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
- 制作生成网站的证书并用CA签名认证
假设网站域名为:www.test.com
#生成www.webkaka.com证书私钥
openssl genrsa -des3 -out www.test.com.pem 1024
#输入密码123qwe
#制作解密后的www.test.com证书私钥
openssl rsa -in www.test.com.pem -out www.test.com.key
#生成签名请求
openssl req -new -key www.test.com.pem -out www.test.com.csr
#用CA签名
openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in www.test.com.csr -out www.test.com.crt
用CA签名如出现如上错误解决方法:
mkdir demoCA
mkdir demoCA/newcerts
cd demoCA
#新增空文件
touch index.text
#新增serial文件 并添加内容02
echo 02>serial
- 配置
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /home/ubuntu/ca/www.test.com.crt;
ssl_certificate_key /home/ubuntu/ca/www.test.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
访问网址:https://127.0.0.1
- 优化
在http{}中加入:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
据官方文档所述,cache中的1m可以存放4000个session。
在配置https的虚拟主机server{}中加入:
keepalive_timeout 70;
强制http访问自动跳转到https
listen 80;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
访问:http://127.0.0.1 自动跳转到https://127.0.0.1