阿里云Linux CentOS 7.3 64位 Apache SSL证书部署全过程记录

      因为参加比赛的需要,所以申请了一个阿里的服务器,系统的话是Linux CentOS 7.3 64位,之后就开始了我的填坑之旅。

      我购买的是学生版的优惠ECS,9.9元一个月,同时为了配备最新的环境和锻炼自己的能力,决定不使用镜像和预安装,只是安装了一个CentOS 7.3系统。

       其他的问题都比较好解决,先申请证书,通过后进行安装,但是我遇到了这个问题,就是我的httpd.conf里面找不到mod_ssl.so,于是我开始了探索之旅

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf

        阿里的这个Linux CentOS 7.3中预装的openssl的版本是 1.0.1e的,好像是2013年的一个版本,具体的可以用下面这个命令来查看,但是我在Linux中搜索却又找不到他,为了后续的SSL证书的安装,此处要预先安装最新版的openssl,但是在安装过程中,他又会提示你的系统中没有 zlib 。所以我建议先不要进行Apache的安装,最好是重新初始化一下磁盘,全部重新开始,来避免不必要的麻烦,因为Linux是多线程,并且一个软件可以下载多次,我也之前就是单纯把apache文件删了,就算是把httpd进程全杀了,也还是会有很多特别麻烦的问题,包括站点的设置什么的,端口占用,开启的时候也会有混乱,所以我最后选择了直接初始化。

$openssl version -a

        因此完整的做法应该是:

        1.下载 zlib

            zlib官方网站: http://www.zlib.net

            目前最新版本zlib是zlib1.2.11,

            安装开始:

            方法一:

            在Linux 命令行中输入下列命令即可完成

            $wget http://www.zlib.net/zlib-1.2.11.tar.gz
            $tar -xvzf zlib-1.2.11.tar.gz
            $cd zlib-1.2.11
            $./configure
            $make
            $make install



           方法二:(推荐)

          直接将 URL :   http://www.zlib.net/zlib-1.2.11.tar.gz 

            粘贴到浏览器的地址栏,进行压缩包的下载。然后将下载得到的压缩包拷贝到你的Linux机器上,进行编译安装。

            此处要用到WinSCP(一款图形可视化Linux面板),进行文件的上传、下载、编辑会非常方便

            (1)在浏览器地址栏中输入 http://www.zlib.net/zlib-1.2.11.tar.gz ,将文件下载保存到本地

            (2)用WinSCP 将本地的 zlib-1.2.11.tar.gz 文件上传到Linux上,我是上传到了 usr目录中

            (3)在Linux命令行中(可以在阿里云的远程连接中操作也可以在 Xshell中进行),执行下列命令,即可完成 zlib 的安装

            $tar -xvzf zlib-1.2.11.tar.gz
            $cd zlib-1.2.11
            $./configure
            $make
            $make install

        2.进行最新版的 openssl 的安装 (以下为阿里官方文档)

        使用源更新 OpenSSL

  •     对于阿里云的 Linux/CentOS 服务器,以 root 权限运行以下命令:
  • sudo yum update openssl

  •     对于 Ubuntu Server/Debain 服务器,以 root 权限运行以下命令:
  • sudo apt-get update
    sudo apt-get upgrade

       使用编译安装更新 OpenSSL

        下载最新版本 OpenSSL(以 openssl-1.1.0e 为例)。

        注意:以下编译升级操作存在风险,建议由专业技术人员来操作。

        以 root 权限运行以下命令:

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar zxvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./config shared zlib
make
make install
# 替换旧版 OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl/ /usr/include/openssl

        检查 OpenSSL 版本

            以 root 权限运行 openssl version -a 命令,系统会返回 OpenSSL 版本信息,如下所示。

OpenSSL 1.1.0e 16 Feb 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
compiler: gcc -DZLIB -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -Wa,--noexecstack
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib/engines-1.1"

        当输入 openssl version -a 时可能出现的问题:

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory  

        解决的方法:

        在/etc/ld.so.conf文件中写入openssl库文件的搜索路径(我的Linux是64位的Centos7.3,所以这里是lib64)

echo "/usr/local/lib64" >> /etc/ld.so.conf

        使修改后的/etc/ld.so.conf生效,问题解决

ldconfig -v

        当你能够查询到openssl为最新版本时,我们的 openssl 安装成功了


        (3)重新安装Apache

          (4)   Apache 安装完成后,这次当你再去httpd.conf里面搜索,你就会找到 mod_ssl.so 了

        (5)之后的一切就可以按照阿里的官方文档继续进行了

                在一切都按照阿里官方文档操作后,可能会有这样的提示

"Syntax error on line 76 of C:/apache/conf/extra/httpd-ssl.conf:SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?)."

                解决办法:

                打开httpd.conf,找到 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so,把前面的注释去掉。



           声明:个人比较菜,可能上述问题上有些许错误,不过亲测是有效的,上述方法也是自己通过两天的不断查资料搜索整理的,希望能够帮到大家!


猜你喜欢

转载自blog.csdn.net/qq_40697071/article/details/79724087