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