如何在服务器中ssl证书部署,在Apache httpd服务器上部署SSL证书

Apache是一款时下最主流、被广泛使用的web服务器。本文详细描述如何在Apache httpd服务器上部署并使用SSL(Secure Sockets Layer)证书。

前提条件

Apache 2.2.34及以上版本

通过运行 httpd -v 命令行查看Apache服务器版本号。

$ httpd -v

# 输出结果:

# Server version: Apache/2.4.28 (Unix)

# Server built:

SSL加解密软件:Apache服务器自身没有Public Key Infrastructure(PKI)相关库,而是采用第三方API进行,如:OpenSSL 1.1.0f及以上版本。

通过运行openssl version -a命令行查看系统中OpenSSL版本号。其中,build on参数日期须晚于2017年5月。

$ openssl version -a

# 输出结果:

# LibreSSL 2.2.7 //版本号

# built on: date not available //build on 参数

# platform: //平台名字

确保已经获取数字证书。有关获取数字证书方法,可参阅如何获取数字证书。

如何部署

开启SSL功能

获取到上述三个文件后,按照如下步骤加载SSL配置:

加载SSL模块

默认情况下,Apache服务器无法进行SSL相关的加解密操作,需要在服务器中运行下列命令行加载SSL模块:

[root@test conf.d]# yum install mod_ssl

加载前,可运行ls –ll命令行确认Apache服务器的modules目录下是否存在mod_ssl.so文件(即SSL模块):

[root@test conf.d]# ls -l /etc/httpd/modules/ |grep "mod_ssl.so"

-rwxr-xr-x. 1 root root 219472 10月 20 04:40 mod_ssl.so

确认SSL加解密库文件

确认存在mod_ssl.so文件后,运行ldd //httpd命令行查看是否存在SSL加解密的库文件:

[root@test conf.d]# ldd /usr/sbin/httpd

linux-vdso.so.1 => (0x00007fffac528000)

libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f86f5e5b000)

libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f86f5c34000)

libaprutil-1.so.0 => /lib64/libaprutil-1.so.0 (0x00007f86f5a0a000)

libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f86f57d3000) #####

libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f86f55a9000)

libdb-5.3.so => /lib64/libdb-5.3.so (0x00007f86f51ea000)

加载SSL配置

在主配置文件中通过includeOptionalconf.d/*.conf配置,来加载SSL相关的配置文件。

根据版本的不同,名称或路径会各有差异。例如:

配置文件可能叫httpd-ssl.conf、ssl.conf等

有些版本在extra目录下,加载的关键词为include。

SSL相关配置

SSL配置加载完毕后,按照如下步骤对SSL进行相关配置:

打开配置文件,例如:ssl.conf

开启443端口的监听:Listen 443 https

对要使用证书的Virtualhost进行配置

DocumentRoot "/myproject" #网站项目目录

SSLEngine on

SSLProtocol all -SSLv2 –SSLv3 #开启所有协议去掉sslv2、sslv3

SSLHonorCipherOrder On #启用前项保密

SSLCipherSuite

ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 #加密套件

SSLCertificateFile /xx/xx/domain.cer #证书公钥路径

SSLCertificateKeyFile /xx/xx/domain.key #证书私钥路径

SSLCertificateChainFile /xx/xx/domain_ca.crt #证书链路径

强制HTTP跳转HTTPS (可选)

通过以下设置,将用户默认的HTTP请求自动跳转为HTTPS请求:

加载重写模块

LoadModule rewrite_module modules/mod_rewrite.so

到80端口(http)的Virtualhost中配置重写语句

RewriteEngine on

RewriteCond % !^443$

RewriteRule (.*) https://%/$1 [R]

上述步骤需重启后生效。

更多信息

你已成功完成SSL证书部署。如果要对所部署的网站进行安全监测,参阅MySSL的使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值