摘要

Apache为一款非常常见的web服务器,此文针对在apache上部署和使用SSL证书进行了详细描述。


Apache的依赖

  • SSL加解密软件。建议:openssl版本1.1.0f+

注:可通过openssl version –a来进行查看。有些yum安装的,主要是看build on的日期175月前的版本最好更新下。

  • apache版本。建议:2.2.34+

注:httpd –v可查看版本号。


获取证书

证书申请颁发后,可以来获取证书。

在我的订单详情里下载证书zip包,解压缩后您将获得cert和key文件。

或者查看您的邮箱,您会收到zip包,解压缩后您将获得cert或者key文件。


加载SSL相关内容

  • Apache加载ssl模块

LoadModule ssl_module modules/mod_ssl.so。

注:可以到modules的目录下查找下是否有mod_ssl.so文件,没有的话,就说明需要编译带SSL模块的apache

命令:ls –ll来查找


有了后,看下运行程序是否有ssl加解密的库文件。

命令:ldd ../xx/xx/httpd


  • Apache加载ssl配置

IncludeOptional conf.d/*.conf。

注:这里加载的写法很多,主要加载配置ssl的配置目录。


进行SSL相关配置

ssl.conf去,注意开启443端口的监听,Listen 443 https。

然后对要使用证书的virtualhost进行配置:

DocumentRoot "/myproject"  #项目目录

SSLEngine on

SSLProtocol all -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


  • 配置重写语句

80http)的virtualhost去配置

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

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


Myssl检测

https的端口没做限制后(防火墙放行,端口转发正常),到https://myssl.com进行检测。