记一次yum安装的nginx加装ssl模块的过程

一次等保测评,我们的外网环境应要求需要加上ssl证书。

现有条件分析:

单机部署,nginx控制访问,那只要在nginx上修改了。

一、安装ssl

1:上机器看环境

 /usr/local/nginx/conf/nginx.conf


server {
    listen 8088;
    server_name mydomain.cn;
    root   /home/tomcat/webapps/front;

    location /front{
	    proxy_pass http://ip:port;
	}
    ......
}

 直接用的端口,这个不影响。

2:尝试添加ssl(已有证书pem和key)

server {
    listen 8088;
    server_name mydomain.cn;
    root   /home/tomcat/webapps/front;

    ssl_certificate ../cert/mydomain.cn.pem;#对应证书的pem(对应位置)
    ssl_certificate_key ../cert/mydomain.cn.key;#对应证书的key(对应位置)
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location /front{
	    proxy_pass http://ip:port;
	}
    ......
}

 重启nginx,结果报错ssl_certificate 找不到,原因是nginx的ssl模块没有。

3.尝试添加ssl模块

查看nginx版本信息

 发现确实没有ssl模块:with-http_ssl_module

网上查到的一些方法是通过./configure命令重新编译加模块,不适用yum直接安装的版本。

4.通过下载同版本nginx进行编译并替换

先备份一下原先的nginx 

cp -r  /usr/local/nginx/ /usr/local/nginx-bak/

根据刚才的版本号下载同版本nginx

  1. cd /opt

  2. wget http://nginx.org/download/nginx-1.9.1.tar.gz

  3. tar -xvzf nginx-1.9.1.tar.gz

 进入到nginx-1.9.1文件夹


cd nginx-1.9.1

#加上在看版本号的本机已经安装的configure arguments后面的模块,记得都加上不要漏
./configure --prefix=/usr/sbin/nginx --with-http_ssl_module

#不要make install

make
 

如果make有报错 下面是一些报错的缺失模块,对应安装一下

yum -y install libxml2 libxml2-devel libxslt-devel gd gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data 
yum -y install --skip-broken gcc gcc-c++ autoconf automake gperftools 
yum -y install --skip-broken zlib zlib-devel openssl-devel pcre-devel
yum -y install pcre*

 编辑生成的nginx执行文件在objs文件夹里面

暂停nginx

/usr/local/nginx/sbin/nginx -s stop #暂停失败可能是因为ssl配置没有注释掉,先注释掉

将nginx执行文件替换掉

cp -f  objs/nginx /usr/local/nginx/sbin/

启动nginx并配置ssl证书,重启nginx,成功!

二、http访问自动跳转到https

利用nginx 497状态码来跳转,完整配置如下

server {
    listen 8088;
    server_name mydomain.cn;
    root   /home/tomcat/webapps/front;

    # http跳转到https
    error_page 497  https://$host:8088$uri?$args;

    ssl_certificate ../cert/mydomain.cn.pem;#对应证书的pem(对应位置)
    ssl_certificate_key ../cert/mydomain.cn.key;#对应证书的key(对应位置)
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location /front{
	    proxy_pass http://ip:port;
	}
    ......
}

测试成功!!!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值