部署nginx并配备SSL证书(局域网)

nginx + ssl

0.环境

Ubuntu 20.04

ip:192.168.88.139

需将ip换成你自己的ip

全文使用命令行!!!

锻炼自己,摆脱GUI!!!

注:vim食用方法自查(有很多快捷指令,虽然我不会。。。

安装ssh

sudo apt install ssh

个人喜欢xshell控制

当然本文也可以在Ubuntu下的terminal执行

关于无法复制粘贴的问题

sudo apt install open-vm-tools-desktop

执行完 重启就好使了

1.安装nginx

sudo apt install nginx

  • /etc/nginx:存放配置文件 //配置服务器所需的文件夹
  • /usr/share/nginx:存放静态文件
  • /var/log/nginx:存放日志

安装后执行nginx -V查看

base@base-virtual-machine:~$ nginx -V
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f  31 Mar 2020 //查看是否有openssl
TLS SNI support enabled

2.生成、配置ssl证书

openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout localhost.key \
-new \
-out localhost.crt \
-subj /CN=Hostname \
-reqexts SAN \
-extensions SAN \
-config <(cat /usr/lib/ssl/openssl.cnf \
    <(printf '[SAN]\nsubjectAltName=DNS:hostname,IP:192.168.88.139')) \
-sha256 \
-days 3650

执行完成会在当前工作目录下

将生成的证书(.crt) 和私钥(.key)放在/etc/nginx/cert/

sudo mkdir /etc/nginx/cert/

sudo cp localhost.* /etc/nginx/cert/

注:由于是内网ip,仅在局域网内使用,故无CA服务器。

我们需要将证书拷贝到Windows下并将此证书添加到 受信任的根证书颁发机构。

3.配置nginx

先将默认配置删除

cd /etc/nginx/sites-enabled

sudo rm default

添加新配置

cd ../conf.d

sudo vim localhost.conf

server {
    listen 80;
    rewrite ^(.*)$ https://192.168.88.139; #这块记得修改,视频中就这块忘了。。。
}


server {
    listen 443;
    ssl on;
    root /var/www/html;
    index index.html index.htm;
    ssl_certificate  cert/localhost.crt;
    ssl_certificate_key cert/localhost.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        index index.html index.htm;
    }
}

保存后

修改默认index文件名

cd /var/www/html

sudo mv index.nginx-debian.html index.html

重启nginx

sudo /etc/init.d/nginx restart

后记

关于https连接 在chrome与edge是使用时
发出了两次tcp连接 后发起的tcp并未实质传输数据!
可以从wiresharks抓包中看出
部署nginx并配备SSL证书(局域网)_第1张图片

firefox并未存在该问题部署nginx并配备SSL证书(局域网)_第2张图片因此鄙人在chromium项目中提出issue
然鹅没有什么反应。。。
部署nginx并配备SSL证书(局域网)_第3张图片

你可能感兴趣的:(nginx,ssl,服务器)