一、安装 OpenSSL
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
tar -zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n/
./config --prefix=/usr/local/openssl #这个地方很特别,是config 不是configure哦
make depend #检查依赖
make
make install
cd /usr/local/openssl/bin
openssl req -nodes -newkey rsa:1024 -out myreq.pem -keyout privatekey.pem
openssl req -in myreq.pem -x509 -key privatekey.pem -out mycert.pem -days 365 #生成数字证书
二、Nginx+OpenSSL支持https
配置nginx.conf
,将以下代码加入到server {}
中,这样就可以同时支持http
和https
了。
listen 443 ssl;
server_name localhost;
ssl_certificate /usr/local/openssl/bin/mycert.pem;
ssl_certificate_key /usr/local/openssl/bin/privatekey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
三、数字证书不受信任
当我们在网页访问https
,提示不安全
,这是因为我们自己的证书是没有办法被信任的,可以购买第三方证书来消除这个红色提示。
四、抓包测试
工具:Fiddler
3.1 http
从下图可以看到,通过抓包可以抓取到发送给服务器的敏感信息
3.2 https
从下图可以看到,通过https协议,数据都被加密了
五、虚拟机配置OpenSSL数字证书
如果同一个服务器
有多个站点,如有api.xxx.com
、auth.xxx.com
和weixin.xxx.com
三个站点。为每个站点按照本文目录二
的步骤配置即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。