NginX下Openssl的构建和部署数字证书,支持HTTPS

houjinkai 2019-06-26

一、安装 OpenSSL

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 {}中,这样就可以同时支持httphttps了。

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;

NginX下Openssl的构建和部署数字证书,支持HTTPS

三、数字证书不受信任

当我们在网页访问https,提示不安全,这是因为我们自己的证书是没有办法被信任的,可以购买第三方证书来消除这个红色提示

NginX下Openssl的构建和部署数字证书,支持HTTPS

四、抓包测试

工具:Fiddler

3.1 http

从下图可以看到,通过抓包可以抓取到发送给服务器的敏感信息

NginX下Openssl的构建和部署数字证书,支持HTTPS

NginX下Openssl的构建和部署数字证书,支持HTTPS

3.2 https

从下图可以看到,通过https协议,数据都被加密了

NginX下Openssl的构建和部署数字证书,支持HTTPS

NginX下Openssl的构建和部署数字证书,支持HTTPS

NginX下Openssl的构建和部署数字证书,支持HTTPS

五、虚拟机配置OpenSSL数字证书

如果同一个服务器有多个站点,如有api.xxx.comauth.xxx.comweixin.xxx.com三个站点。为每个站点按照本文目录的步骤配置即可。

相关推荐