使用自签名证书实施Nginx HTTPS

发布者:上海IT外包来源:http://www.lanmon.net点击数:987

为了互联网安全,HTTS是必不可少的,但首先需要支付证书,虽然有许多免费证书可供申请,但必须有域名才能通过验证。实际上,我们有一些内部系统或某些测试环境没有域名或需要设置域名。在这种情况下,如何使用HTTPS,即bug引入的自签名证书方法。
安装升级openSSL
OpenSSL是整个底层加密算法库和工具的基础。
使用自签名证书实施Nginx HTTPS
我们的Web服务器依赖其类库来实现SSL/TSL模块和HTTPS。您还需要在颁发证书时使用OpenSSL。在自签名生成时,我们可以使用其他更专业的软件,例如GPG。对于GPG的使用,我们在前一篇文章中已经介绍过,您可以参考历史文章。为方便起见,证书是使用OpenSSL发布的。
由于OpenSSL升级可能会影响很多软件,我们不会直接升级,而是在/usr/local/ssl目录中生成新版本的OpenSSL,这样它就不会影响现有软件的其他版本。
首先下载最新版本的OpenSSL,以便与我们选择的1.0.2系列版本兼容:
使用自签名证书实施Nginx HTTPS
Fixed w pen  -  voltage -org-certificate
Tar -zxvf openssl  -  * .tar.gz
Cd openssl- *
./config -fpic shared && make && make install
Echo'/usr/local/ssl/lib'>
>
/etc/ld.so.conf中
LDCONFIG
生成自签名证书
子签名证书与商业证书相同,但证书需要自己生成。首先确保将OpenSSL升级到新版本,或者通过yum update openssl upgrade解决现有的ssl漏洞。
Mkdir/etc/ssl
Chmod 700/etc/ssl
/usr/local/openssl/bin/openssl req -newkey rsa: 2048 -nodes -keyout /etc/ssl/rsa_private.key -x509 -days 888 -out cert.crt -subj/C=CN/ST=BJ/L=CY/O=CC/OU=OP/CN=Chongchong/[email protected]为了避免在创建证书的过程中填充交互信息,我们使用-subj参数在这里指定一些参数。在实际使用中,您可以根据需要设置:。
使用自签名证书实施Nginx HTTPS
C=CN←国家代码,中国输入CN
ST=BJ←州(省)名称
L=CY←您所在城市的名称
O=CC←组织或公司名称
OU=OP←部门名称
CN=Chongchong←通用名称,可以是服务器域名或个人名称
[email protected]←管理电子邮件名称
将生成网站私钥rsa_private.key和网站证书cert.crt。安装成功后,可以验证证书。对于证书安全设置权限:
Chmod 600/etc/ssl/*
Nginx HTTPS安全配置
确保nginx使用最新版本的nginx(当前版本为1.15.11,1.12.2)。如果系统正在使用其他应用程序服务器,则通常的做法是将nginx作为反向代理和代理添加到应用程序服务器,例如tomcat。然后在Nginx反向代理中配置https。
打开一个新的虚拟主机并将其设置在服务器{.. } 部分:
请注意,ssl on未在nginx的新语法中使用;相反,ssl被添加到listen语句中; 443是默认的https端口,根据实际情况修改为其他端口。
听*: 443 ssl;
Ssl_certificate/etc/ssl/cert.crt;
Ssl_certificate_key/etc/ssl/rsa_private.key;
Ssl_protocols TLSv1.2;
Ssl_prefer_server_ciphers on;
Ssl_ciphers'ECHDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH';
Ssl_ecdh_curve secp384r1;
Ssl_session_cache共享: SSL: 10m;
Ssl_session_tickets off;
Add_header Strict-Transport-Security'max-age=63072000; includeSubDomains;预紧力“;该路径是刚刚生成的网站证书的路径。根据网站的实际配置,可能存在差异。我们可以使用Mozilla的服务器端TLS配置在线生成器,如前一篇文章中所述:
使用自签名证书实施Nginx HTTPS
配置完成后,使用nginx命令检测配置并重新加载Nginx:
检测配置:
Nginx -t
刷新:
Nginx -s重新加载
Nginx优化配置
优化Nginx性能
添加http {..}:
Ssl_session_cache共享: SSL: 10m;
Ssl_session_timeout 10m;
增加会话缓存可以提高nginx处理https的性能。
添加使用https配置的虚拟主机服务器{..}:
Keepalive_timeout 70;
设置超时,这可能会因超时而导致性能问题
Fastcgi ssl配置
有时在启用https后,某些PHP程序身份验证通过,会发生跳转页面错误错误,并且跳转到http会导致问题。
解决方案是导航到include fcgi.conf中的'location~. *。(php | php5)?$ {}';或者在fastcgi_param配置之后:
Fastcgi_param HTTPS on;
Fastcgi_param HTTP_SCHEME https;
浏览器增加网站信任
使用自签名https证书,默认浏览器被拒绝访问,需要添加到浏览器信任列表才能访问它。
添加信任方法:
火狐
单击“高级”并将访问URL添加到信任:
使用自签名证书实施Nginx HTTPS

Chrome设置类似,请点击高级
使用自签名证书实施Nginx HTTPS
点击继续
使用自签名证书实施Nginx HTTPS
证书验证
查看我们的自签名证书信息:
使用自签名证书实施Nginx HTTPS
与我们在第二部分中生成证书时设置的参数相同。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部