安装升级openSSL
OpenSSL是全体底层加密算法库和工具的根本。
我们的Web做事器要依赖它的类库来实现SSL/TSL模块和HTTPS的事情。在签发证书时候也须要利用OpenSSL。在自署名天生时候,我们可以利用其他更加专业的软件,比如GPG,关于GPG利用我们以前文章中先容过,大家可以参考历史文章。本文为了方便,证书的签发都用OpenSSL。
由于OpenSSL升级可能影响很多软件,我们先不直接升级,而天生一个新版本的OpenSSL在/usr/local/ssl目录,这样不影响已有有版本的其他软件。

首先下载最新版本的OpenSSL,为了兼容我们选择1.0.2系列版本:
wget Url --no-check-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升级确保办理已有的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/emailAddress=test@cc.info
为了避免创建证书过程中的交互式信息填写,我们此处利用-subj参数指定了一些参数,实际利用中可以根据须要自己设置:
C=CN ← 国家代号,中国输入CN
ST=BJ ← 州(省)名
L=CY ← 所在地市的名称
O=CC ← 组织或者公司名称
OU=OP ← 部门名称
CN=Chongchong ← 通用名,可以是做事器域控名称,或者个人的名字
emailAddress=test@cc.info ← 管理邮箱名
会天生网站私钥rsa_private.key和网站证书cert.crt都准备完毕。证书的验证可以在设置成功后。为了证书安全设置权限:
chmod 600 /etc/ssl/
Nginx HTTPS安全配置确保nginx利用最新版本的nginx(目前版本为1.15.11,1.12.2),如果系统是用的其他运用做事器,一样平常做法是给新增加nginx做为反向代理,代理到运用做事器,比如tomcat,然后在Nginx反向代理商配置https。
新开一个虚拟主机,并在server{ .. . }段中设置:
把稳nginx新语法中已经不该用ssl on;而是在listen语句中添加ssl;443为默认https端口,根据实际情形修正为别的。
listen :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 \"大众EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\"大众;
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
add_header Strict-Transport-Security \"大众max-age=63072000; includeSubDomains; preload\公众;
个中的路径是刚刚天生的网站证书的路径。根据网站实际情形配置可能有差异,我们可以利用Mozilla的做事器端TLS配置在线天生器,这个我们以前的文章中也提到过:
配置完成后,利用nginx命令检测配置和重新加载Nginx:
检测配置:
nginx -t
重新加载:
nginx -s reload
Nginx优化配置优化Nginx性能在http{.. .}中加入:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
增加session缓存可以提高nginx处理https的性能。
在配置https的虚拟主机server{.. .}中加入:
keepalive_timeout 70;
设置超时,可以由于超时导致等待导致性能问题
fastcgi ssl配置有时候启用https后,有些php程序认证通过后,涌现跳转页面缺点缺点,跳转到http导致问题。
办理方法是定位至\公众location ~ .\.(php|php5)?${}\公众在include fcgi.conf;或者在fastcgi_param配置后面加上:
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
浏览器添加网站信赖利用自署名的https证书,默认浏览器是谢绝访问的,须要把该网站添加到浏览器信赖列表才能访问。
添加信赖的方法:
firefox点击高等,将要访问url添加到信赖即可:
Chrome
Chrome设置类似,点击高等
点击连续前往
证书验证
查看我们自署名的证书信息:
和第二部我们天生证书时候设置的参数同等。