如果只是想看有问题的服务器使用nginx安装SSL证书的可以直接跳到正文操作部分
前言
世界是一个巨大的草台班子,你以为的安服和实际上的安服区别真的太大了。至少我从来没想到过因为甲方运维太逆天需要我这种臭安服来做运维的事情。 事情简短描述就是甲方的服务器需要安装证书,但是服务器是有问题的,无法执行编译相关的命令,比如yum什么的。然后nginx也不能直接装证书,原因是缺模块。
故事
起因是某个客户单位要过等保,然后整改项中有需要安装SSL证书这一项。我原以为不就装个证书吗,能有多难,必须手拿把掐啊🤔,结果这件事超过了一个月,心累。
我们单位提出需要SSL证书的整改要求后,甲方的运维在折腾了一段时间后,选择找我们单位来解决这个事情,说是这方面我们才是专业的,逆天。之后我直接SSH上甲方服务器操作。既然是装证书,那么肯定要先解决中间件nginx的问题啊,查看nginx的版本
nginx -V
rpm -q gcc
???坏了,rpm命令出问题了,此时我已经意识到了不对,但是我想着还能救一下,既然查有问题,那我就直接装依赖,我就不信邪。
yum -y install gcc gcc-c++ openssl openssl-devel pcre pcre-devel zlib zlib-devel
???啥子鸟?yum命令g了?不怕,yum在centos上的Python依赖默认是Python2,所以我只需要用python重新链接到yum就行了。查看python
python
nice!Centos6.5能用python2.6,接下来我只需要保证python2.6完整就能救回yum了
ls /usr/lib/python2.6/site-packages/| grep yum
丸辣😎😭,此时我已经不想干了,然后我突然想到我直接编译就完事了,这些问题又不是我搞出来的,我只需要把SSL证书装上去就行了。说干就干,下载相同版本的源码包
wget http://nginx.org/download/nginx-1.22.1.tar.gz
解压刚刚下载的源码包
配置编译命令
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-stream
丸辣!😭,系统缺少SSL模块,但是yum用不了。。。。。。。。逆天。我当时和同事都只觉得甲方的运维实在是太逆天了,是怎么能把系统搞坏的。但是谁让我们是吗喽安服呢,只能硬着头皮上了,尝试修复yum
wget https://vault.centos.org/6.5/os/x86_64/Packages/yum-3.2.29-40.el6.centos.noarch.rpm
wget https://vault.centos.org/6.5/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -Uvh yum-3.2.29-40.el6.centos.noarch.rpm --force --nodeps
rpm -Uvh python-iniparse-0.3.1-2.1.el6.noarch.rpm --force --nodeps
但是
rpm -V glibc
悠悠苍天,何薄于我😭。
正文
无法了,这种情况只能上面杀手锏了“nginx静态编译”。本地创建一个和目标服务器一样的环境,避免到时候出现程序不适用的问题。
安装依赖项
yum -y install gcc-c++make wget
下载nginx模块依赖的软件包和nginx源码包
wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz/download
wget https://zlib.net/zlib-1.2.11.tar.gz
wget http://nginx.org/download/nginx-1.22.1.tar.gz
解压上面下载的压缩包
进入nginx文件夹中执行配置编译命令
./configure
--with-openssl=../openssl-1.0.2s
--with-pcre=../pcre-8.43
--with-zlib=../zlib-1.2.11
--with-pcre-jit --user=root
--prefix=/root/nginx
--with-http_ssl_module
--with-http_v2_module
编译安装,执行后等待一会即可
make&&make install
完成之后进入root目录打包nginx
cd /root && tar -zcvf nginx-green.tar.gz nginx
然后将刚刚打包的nginx上传到甲方的服务器上,使用root账号登录,在root 目录下解压nginx
tar -zxvf nginx-green.tar.gz
cd /root/nginx/sbin/
然后编写SSL配置,使用下面的命令加载nginx.conf文件
./nginx -c <nginx.conf 路径>
原文始发于微信公众号(苍夜安全):安服崽生存指南之nginx安装SSL证书
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论