环境清单
系统:centos7.6 64位 (其它版本未验证)
openssl-1.1.0k
zlib-1.2.11
pcre-8.41
nginx-1.13.5
安装gcc c++编译环境
#yum -y install gcc gcc-c++
安装openssl
openssl 1.1.1编译有问题,所以用1.1.0k
#cd /tmp
#wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0k.tar.gz
#tar xf openssl-1.1.0k.tar.gz
tar命令用xzf解压出来的有问题,去掉z参数,用xf
#cd openssl-1.1.0k
#./config --prefix=/usr/local/openssl-1.1.0k --openssldir=/usr/local/openssl-1.1.0k --libdir=lib shared -Wl,-R,'$(LIBRPATH)' -Wl,--enable-new-dtags enable-ec_nistp_64_gcc_128 enable-tls1_2
#make
#make install
修改系统ssl配置
#mv /usr/bin/openssl /usr/bin/openssl.old
#mv /usr/include/openssl /usr/include/openssl.old
#ln -s /usr/local/openssl-1.1.0k/ /usr/bin/openssl
#ln -s /usr/local/openssl-1.1.0k/include/openssl/ /usr/include/openssl
安装zlib
http://www.zlib.net/ 下载zlib-1.2.11.tar.gz上传到 /tmp
#cd /tmp
#tar xf zlib-1.2.11.tar.gz
#cd /tmp/zlib-1.2.11
#./configure --prefix=/usr/local/zlib-1.2.11
#make
#make install
#echo "/usr/local/zlib-1.2.11/lib" >> /etc/ld.so.conf
# ldconfig -v
安装nginx
#cd /usr/local
#wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
#tar xvf pcre-8.41.tar.gz
#cd pcre-8.41
#./configure
#make
#make install
#cd /tmp
#wget http://nginx.org/download/nginx-1.13.5.tar.gz
#tar xvf nginx-1.13.5.tar.gz
#cd nginx-1.13.5
#./configure --prefix=/usr/local/nginx1.13.5 --with-http_ssl_module --with-pcre=/usr/local/pcre-8.41 --with-openssl=../openssl-1.1.0k --with-zlib=../zlib-1.2.11 --with-stream
注意:
1、上面参数里的 ../openssl-1.1.0是openssl安装包路径,完整路径是:/tmp/openssl-1.1.0,不是安装好的/usr/local/openssl-1.1.0
2、上面参数里的 ../zlib-1.2.11是zlib安装包路径,完整路径是:/tmp/ zlib-1.2.1,不是安装好的/usr/local/ zlib-1.2.1
#make
#make install
ssl证书
以阿里云为例,购买阿里云ssl证书,可选免费单域名,配置好后下载ngxinx服务器证书。
将下载的证书解压,会有两个文件:.key和.pem文件,拷贝两个文件到 /etc/pki/tls/certs
Nginx配置
编辑nginx.conf文件,找到server块,修改如下,红字部分为添加配置:
server {
listen 80;
listen 443 ;
server_name testssl.xxx.cn;
ssl_certificate /etc/pki/tls/certs/5795782_testssl.xxx.cn.pem;
ssl_certificate_key /etc/pki/tls/certs/5795782_testssl.xxx.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl on;
#charset koi8-r;
#access_log logs/host.access.log main;
……
验证
浏览器调试模式