摘要
Apache为一款非常常见的web服务器,此文针对在apache上部署和使用SSL证书进行了详细描述。
Apache的依赖
-
SSL加解密软件。建议:openssl版本1.1.0f+
注:可通过openssl version –a来进行查看。有些yum安装的,主要是看build on的日期17年5月前的版本最好更新下。
-
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
-
配置重写语句
到80(http)的virtualhost去配置
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
Myssl检测
https的端口没做限制后(防火墙放行,端口转发正常),到https://myssl.com进行检测。