摘要
Apache为一款非常常见的web服务器,此文针对在apache上部署和使用SSL证书进行了详细描述。
关键词:SSL证书、Myssl、MPKI、Apache、Https
Apache的依赖
SSL加解密软件。建议:openssl版本1.1.0f+
注:可通过openssl version –a来进行查看。有些yum安装的,主要是看build on的日期17年5月前的版本最好更新下。
apache版本。建议:2.2.34+
注:httpd –v可查看版本号。
获取证书
证书申请颁发后,可以来获取证书。
MPKI方式:
订单——查看——证书下载pem(apache)格式。
会得到一个zip的压缩包,解压后有三个文件,分别是cer,crt和key后缀的。
非MPKI方式:
CSR对应的key文件。
证书邮件里提取代码,把-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----(包括开头和结尾,不用换行)复制到txt文本文件里,然后保存为cer后缀;第二段或者还有第三段的,都保存成crt后缀。这样也就获取到apache用的3个文件了。
加载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进行配置:
<VirtualHost _default_:443>
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
</VirtualHost>
注:配置完成后,重启一下。
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进行检测。
评级达到B以上,在安全和兼容方面是较不错的。