Apache SSL证书安装配置方法教程
2019-06-11 来源:
Apache SSL证书安装配置方法教程
简介
在申请数字证书之前,您必须先生成证书私钥和证书请求文件 (CSR, Certificate Signing Request), CSR是您的公钥证书原始文件,包含了您的服务器信息和您的单位信息,需要提交给CA认证中心。
请妥善保管和备份您的私钥。
以上是申请证书流程图。完成整个流程最快三天,慢则七天,因为发证商需要审核申请者提交的资料。
第一步 提交CSR
第二步 资料提交到CA
第三步 发送验证邮件到管理员邮箱
CA获得资料后,将发送一封确认信到管理员邮箱*,信中将包含一个链接。每一个订单,都有一个唯一的PIN以做验证用。
第四步 邮件验证
点击确认信中的链接,可以访问到验证网站,在验证网站,可以看到该订单的申请资料,然后点击
"I Approve"完成邮件验证。
第五步 颁发证书
CA会将证书通过邮件方式发送到申请人自己的邮箱。
*什么是管理员邮箱?
认证系统为了确认您对所申请的SSL服务器域名拥有管理权,会发电子邮件到指定的管理员邮箱中。例如:您准备申请的SSL证书服务器域名为:host.domain.com,在递交申请时,可供选择的管理员邮箱如下:
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守SSL协议,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
本指南将分成5个主题:
- 生成证书请求文件(CSR)
- 安装服务器证书
- 设置OCSP装订
- 优化加密方式 (weak cipher)
- 设置http跳转到https
第一步:证书签章要求 (CSR) 产生说明
- 安装 openssl(加密工具)
- 产生证书私钥和证书请求文件(CSR)
从Email地址开始,下面的信息都不需要,请保留为空,直接回车即可。在完成了如上的交互信息输入后,当前目录下将产生两个文件:.key (公钥) 和 .csr (私钥)。请妥善保存这两个文件,请不要泄露私钥文件.
详细介绍命令:
如果CSR需要中文字,指令加 –utf8 参数
- 验证您的证书签章要求
https://cryptoreport.websecurity.symantec.com/checker/views/csrCheck.jsp
请确保 Signature algorithm: SHA256
- 提交CSR 给商服
请保管好key私钥文件,提交CSR给客服等待证书签发 .
第二步:安装服务器证书
证书是审核完毕后您将会收到:
服务器证书
服务器中级CA证书
2.1、 配置Apache
打开apache安装目录下 /etc/httpd/conf/httpd.conf 文件,找到
#LoadModule ssl_module modules/mod_ssl.so
删除行首的配置语句注释符号“#”
保存退出。
打开apache安装目录下conf目录中的ssl.conf文件,查到“LoadModule ssl_module”
如下:
#LoadModule ssl_module modules/mod_ssl.so
删除行首的配置语句注释符号“#”,另加 Include /etc/httpd/conf.d/ssl.conf
Include /etc/httpd/conf/ssl.conf
2.2、打开apache安装目录下 /etc/httpd/conf/ssl.conf 文件在配置文件中的
SSLCertificateFile /etc/pki/tls/certs/server.crt 将服务器证书配置到该路径下
SSLCertificateKeyFile /etc/pki/tls/certs/domain.com.key 将服务器证书私钥配置到该路径下
SSLCertificateChainFile conf/ca.crt 删除行首的“#”号注释符,并将CA证书ca.crt
配置到该路径下,保存退出。
例子
2.3、重启Apache。重启方式:
进入Apache安装目录下的bin目录,运行如下命令
./apachectl -k stop
./apachectl -k start
附录:如何辨识中级证书
每张证书都会显示发行者,如下:
以上例子有 Symantec Class 3 EV SSL CA – G3, GeoTrust SSL CA – G3, RapidSSL SHA256 – CA。这就是各个证书对应的中级证书。
所谓 “证书安全链” 就是结合秘钥,域名证书,和中级证书,串连起来的加密链,确保加密数据的安全性。
第三步:设置OCSP装订
OCSP装订(英语:OCSP Stapling),是一个TLS证书状态查询扩展,作为在线证书状态协议的代替方法对X.509证书状态进行查询。服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。
OCSP装订需求Apache2.3.3版本或以上。
检测Apache版本
# apache2 –v
3.1 设定
在设定档底下加入两行指令:
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/ocsp(128000)"
第二行SSLStaplingCache指定快取的装置路径和记忆体大小。注意:如果Apache是安装在微软,第二行指令设为 "shmcb:C:/xampp/apache/logs/ocsp(128000)"
以上二行指令必须在 <VirtualHost> … </VirtualHost> 挂号以外,避免Apache无法重启。
注意:若在服务器配置OCSP装订,终端服务器的OCSP请求必须默认允许连接到赛门铁克OCSP服务器。若您的服务器是安装在防火墙后端,则必须创建防火墙策略外接链接允许赛门铁克OCSP。
使用Openssl工具验证终端服务器ssl证书与赛门铁克OCSP链接,请参考以下文档:
https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=HOWTO111088
保存设定档,重启Apache。
3.2 验证OCSP装订
只有 openssl 工具版本 0.9.8k或以上才能验证OCSP装订。
# openssl s_client -connect yourdomain.com:443 -tls1 -tlsextdebug -status
范例显示结果:
OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
若显示以上结果说明OCSP装订已经配置成功,不成功则显示:
OCSP response:
======================================
OCSP response: no response sent
另一个验证是透过赛门铁克官网 https://cryptoreport.websecurity.symantec.com/checker/
OCSP装订将显示 "Enabled" 或 "Not Enabled"
第四步:关闭不安全的加密方式 (cipher)
- 通过https方式访问您的站点,测试站点证书的安装配置。
https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsp
- 在提高网络服务器的SSL证书部署优化方面,我们通常建议系统管理员使用更加安全的加密套件,对于这一点,我们提出对常见的服务器支持的方案。
打开apache安装目录下 /etc/httpd/conf/ssl.conf 文件在配置文件中加入:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
第四步:设置http自动跳转到https
配置好https后,需要设置url重定向规则,使网站页面的http访问都自动转到https访问。
1)先打开url重定向支持
打开Apache/conf/httpd.conf,找到 #LoadModule rewrite_module modules/mod_rewrite.so
去掉#号。
2)找到你网站目录的<Directory>段,找到
修改其中的 AllowOverride None 为 AllowOverride All
3)重启apache服务2、设置重定向规则
( 1)在你网站目录下放一个.htaccess文件。windows环境下,不能把文件直接改名为.htaccess,会提示你必须输入文件名。所以我们先新建一个“新建文本文档.txt”文档,记事本打开,选择另存为,保存类型选择“所有文件(*.*)”,文件名输入“.htaccess”,保存。这样便生成了一个.htaccess文件。
( 2)编辑器打开 .htaccess文件,写入如下规则:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
解释:
%{SERVER_PORT} —— 访问端口
%{REQUEST_URI} —— 比如如果url是 http://localhost/tz.php,则是指 /tz.php
%{SERVER_NAME} —— 比如如果url是 http://localhost/tz.php,则是指 localhost
以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。这样便实现了:访问了 http://localhost/index.php 或者 http://localhost/admin/index.php 等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php,但是访问 http://localhost/tz.php 的时候就不会做任何跳转,也就是说 http://localhost/tz.php 和 https://localhost/tz.php 两个地址都可以访问。
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。