企业内网也会出现数据安全问题:
刚才找到一种方法:生成 https 证书,配后端、导入到客户端(chrome -> 设置 -> 隐私设置和安全性 -> 安全 -> 管理证书)
但,每台机器都导入证书的话,也很麻烦,有没有方法自己搭建证书认证服务?
搞了几天,终于搞好了,记一下笔记
先准备一个干净的 nginx,最好新装一个,然后搭建一个 http 服务器(以 ubuntu 为例):
sudo apt install nginx
安装好后,会自动启动
访问localhost
检查一下,如果不成功的话,看看 80 端口是否被占用
检查好后,在命令行启动 nginx
sudo nginx
nginx 的日志读写需要 sudo 权限
之后再检查一下是否启动成功
nginx 的配置文件里(在/etc/nginx/nginx.conf
目录下),有很多内容
我想,很少有人能认全,多余的配置只会产生迷惑,先全删掉
填入以下内容:
user root; # 以 root 用户启动 nginx
events {}
http {
server {
root /home/gy/static; # http 服务器的跟路径设为 /home/gy/static
}
}
然后,让 nginx 重新加载配置:
sudo nginx -s reload
然后,随便在根目录下(也就是本例的 /home/gy/static)造个文件
比如 index.css,里面随便写一些东西
再访问localhost/index.css
,如果成功了,说明以上配置没问题,一个新的 nginx 装好了
这个工具是主角,确保它已经安装,并且版本在 1.1.0 以上:
openssl version
版本老的话,就删了:
sudo apt remove openssl
安装:
sudo apt install openssl
准备工作完成
先对配置文件做一些修改,位置:/etc/ssl/openssl.cnf
req_extensions
在 [ req ] 模块,添加req_extensions = v3_req
默认应该是有的,只需要解除注释
req_distinguished_name
确保 [ req_distinguished_name ] 模块下没有 0.xxx
如果有,删除 0.
(所有)
比如:0.organizationName = Organization Name (eg, company)
改成:organizationName = Organization Name (eg, company)
alt_names
[ v3_req ] 模块下添加:subjectAltName=@alt_names
再在最后添加新的 [ alt_names ] 模块:
[ alt_names ]
IP.1 = 192.168.100.100
[ ip ] 别忘换成你自己的服务器的 ip
在任意位置,准备一个目录,放你的证书、密钥等文件,比如/home/gy/ssl
.
然后,需要下面的目录和文件:
mkdir -p demoCA/newcerts
touch ./demoCA/index.txt ./demoCA/serial
echo "01">> ./demoCA/serial
切换到/home/gy/ssl
目录
下面有要求输入信息的,按实际输入即可 需要特别注意的是,有一项是 common name,那里必须输入服务器的 ip 地址
bash
openssl genrsa -out ca.key 2048
bash
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config /etc/ssl/openssl.cnf
bash
openssl genrsa -out server.key 2048
bash
openssl req -new -out server.csr -key server.key -config /etc/ssl/openssl.cnf
bash
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -extensions v3_req -config /etc/ssl/openssl.cnf
其中有要求输入信息的,按实际输入即可 需要特别注意的是,有一项是 common name,那里必须输入服务器的 ip 地址
证书生成好了,把证书发给客户端和服务器
修改 nginx 的配置文件:/etc/nginx/nginx.conf
,修改好后:
user root;
events {
}
http {
server {
listen 443 ssl;
ssl_certificate /home/gy/ssl/server.crt;
ssl_certificate_key /home/gy/ssl/server.key;
root /home/gy/static;
}
}
重新加载 nginx 配置:
sudo nginx -s reload
用 u 盘或某种工具,把上一步生成的ca.crt
文件搞到客户端电脑,双击即可安装
重启 浏览器
完成