Linux|UNIX下LAMP环境的搭建及常见问题[连载10]

本文涉及的产品
Digicert DV 证书 单域名,20个 3个月
简介:
注意本篇内容谢绝转载
七、给 Apache 添加 SSL 证书

还记得在前边提到的 MySQL 服务器如何使用自建 CA 证书管理机构 ),自己创建服务器和客户端证书的步骤吧。在 Apache 服务器上,如果我们的网站的访问者是一个有限的封闭的几个人或公司内部,那么用自己建立的 CA 签发 SSL 服务器和客户机证书就好了。

 

而如果网站的访问者是面向互联网大众的,最好还是向专业的 C 如申请并购买服务器证书,这样客户端的浏览器会自动向 CA或ICA (授权证书管理机构)验证你服务器证书的有效性。


这一部分主要来说明一下如何添加已经购买好的服务器证书。

 

本篇内容大部分系翻译内容。


---翻译内容开始--

如果你是要安装了一个  EV SSL证书,查看这里  Apache EV SSL Certificate Installation Instructions  (即Apache EV SSL证书安装指南)。如果是你安装的是其它证书,请参照下面的步骤操作:

1. 拷贝证书文件到你的服务器

从你的客户专区下载 ICA(即  Intermediate Certificate Authority)证书文件( DigiCertCA.crt)和你的服务器证书文件(  <你的域名 >.crt),然后把它们拷贝到你的服务器上要存放证书和私钥文件的路径,并确保 root用户可读。

2. 查找Apache的配置文件并编辑

这个文件的位置因服务器而异,特别是你用了一个指定的路径 special interface来管理你的服务器配置。

Apache配置文件通常在 /etc/httpd。主配置文件常常以  httpd.conf命名。在大多数情况下 <VirtualHost>块在 httpd.conf文件的底部。有 时 <VirtualHost>块则会存在于他们单独的文件,并放置在类似 /etc/httpd/vhost.d/或者 /etc/httpd /sites/的目录下,或者在名为 ssl.conf的文件中。

如果你拿文本编译器打开这个文件,你可以找到包含了 Apache的设置的 <VirtuaHost>块。

3. 配置<VirtualHost>块识别SSL

如果你需要自己的站点通过加密的( https)和非加密( http)连接都能够访问的话,你需要每种连接类型配置一个虚拟主机 virtual host。一定要拷贝一份已存在的非加密的虚拟主机,而后按照步骤 4的描述把它配置成支持 SSL

如果你仅仅需要网站通过安全机制访问,按照步骤 4的描述配置已经存在的虚拟主机支持 SSL

4. 配置<VirtualHost>块为站点启用SSL安全机制

下面是一个简单的配置成支持 SSL的虚拟主机例子。其中列出的粗体部分是必须添加的 SSL配置。

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt

</VirtualHost>

按照你的 证书文件来调整文件名和路径。

  • SSLCertificateFile <这里应该是你的服务器证书文件> (例如:your_domain_name.crt)

  • SSLCertificateKeyFile <这里应该是你在创建CSR时候生成的的密钥文件>

  • SSLCertificateChainFile <这里应该是 DigiCert ICA证书文件> (默认为DigiCertCA.crt)

5. 在重新启动Apache前先测试你的配置

通常,最好在重新启动 Apache 之前测试你的 Apache配置文件以防有错,这是因为一旦你的配置文件存在语法错误, Apache就再启动不起来了。运行下面的命令:(在一些系统上可能是 apache2ctl

apachectl configtest

6. 重新启动Apache

你可以用 apachectl命令来停止和启动带 SSL支持的 Apache

apachectl stop

apachectl start

提示:如果 Apache不能启动带 SSL支持,请尝试用 apachectl startssl”替代 “apachectl start”。如果只有在使用 “apache startssl”SSL支持才会加载,那我们建议你修改 apache的启动配置把 SSL支持包含到正常的 “apachectl start”命令中。要不然的话当服务器重启时可能需要你通过 “apachectl startssl”来手动重新启动 Apache。这经常会导致 <IfDefine SSL></IfDefine>标记被移而关闭 SSL相关的配置。

译者注:在最新版本的Apacheapachctl脚本的startssl这个参数已经废除。

排除故障:

1.如果你的网站可以被公众访问,我们的  SSL Certificate Tester(即 SSL证书测试)工具能帮助你判断通常可能会出现的问题。

2.求助迁移你的 证书到另外的服务器或者是跨服务器的平台上,请查看这里  OpenSSL export instructions  (即OpenSSL导出指南)

3.如果你为了符合 PCI Compliance requirements  (即PCI 兼容列表)需要禁用  SSL version 2 的兼容性时,你需要在你的 Apache配置文件中添加下面的指令:

SSLCipherSuite HIGH:+MEDIUM:!SSLv2:!EXP:!ADH:!aNULL:!eNULL:!NULL

如果这条指令已经存在,你很可能需要修改这条指令来禁用 SSL version 2


---翻译内容结束--

下一个连载的内容将是如何编译PHP以及要注意的一些事项。到现在,连载内容已经接近尾声。




     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/201522,如需转载请自行联系原作者

相关文章
|
14天前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
181 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
11天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
18天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
37 2
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
46 4
|
3月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
570 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
137 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
59 3
|
3月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
82 6
|
2月前
|
Linux UED iOS开发
|
3月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
68 3