LAMP环境添加SSL证书,使网站变成HTTPS加密传输

简介:

一 简介

目前国内大部分网站都是采用的HTTP协议,也就是明文传输数据,与此同时SSL证书最近几年逐渐开始在国外普及。安装SSL证书之后数据就可以进行加密传输,在浏览器中看到的效果就是:在地址栏前面带有一个绿色小锁,同时URL地址是以HTTPS开头的

下面我将简单介绍如果在LAMP环境(Linux+Apache+MySQL+PHP)下添加SSL证书的详细步骤:

二 获取证书

付费的证书有很多,这里就不说了。关于免费证书据我了解的就有:沃通免费SSL证书以及StartSSL免费SSL证书。如果想要申请沃通的免费SSL证书可以去它官网申请,当然我怕麻烦就直接在“景安网络”申请了免费证书(PS:实际上也是沃通的免费SSL证书)。申请过程很简单,只需要填几项基本信息再加上验证网站身份就OK了,不到半天的时间就可以收到领取证书的邮件了

得到证书后,由于我这里是LAMP环境,因此打开“for Apache”那个压缩包,可以看到一共有三个文件,它们分别是:

  • 1_root_bundle.crt  中级CA证书

  • 2_www.tar.pub.crt  公钥

  • 3_www.tar.pub.key  私钥

注:这三个文件在后面都会使用,需要传到VPS上的Apache的配置文件目录中去

三 安装配置

(1)安装openssl:

关于openssl的安装可以采用源码编译安装,也可以直接使用yum或者apt-get来自动安装:

1
root@www:~ # apt-get install -y openssl

(2)修改apache安装目录下conf目录中的httpd.conf文件:

1
root@www:~ # vim /usr/local/apache/conf/httpd.conf

修改以下内容:

1
2
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

即:删掉代码前的注释符

(3)修改apache安装目录下conf/extra目录中的httpd-ssl.conf文件:

1
root@www:~ # vim /usr/local/apache/conf/extra/httpd-ssl.conf

修改以下内容:

i)公钥的路径:

1
SSLCertificateFile "/usr/local/apache/conf/2_www.tar.pub.crt"

注:这里指向你自己的真实公钥文件路径即可

ii)私钥的路径:

1
SSLCertificateKeyFile "/usr/local/apache/conf/3_www.tar.pub.key"

iii)中级CA证书路径:

1
SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle.crt"

iv)修改SSL加密策略:

1
2
SSLProtocol  all -SSLv2 -SSLv3
SSLCipherSuite ALL:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

注:

  • SSLProtocol的配置是指定 SSL 连接方式,不包含 SSLv2 和 SSLv3,这两种已不安全

  • SSLCipherSuite 的配置是指定了加密套件,这里去除了一些不再安全的一些方式


v)修改网站根目录路径:

1
2
3
DocumentRoot "/data/www/owncloud"
ServerName www.tar.pub
ServerAlias tar.pub
1
2
3
DocumentRoot "/data/www/owncloud"
ServerName www.tar.pub
ServerAlias tar.pub

注:

  • ServerName 是网站主域名,指定为你自己的

  • ServerAlias 是网站的其他域名,可定义多行,也可不定义。不定义的话,就删除该行

  • Directory 是和 DocumentRoot 一致的,是对文件夹一些属性的定义


(4)重启Apache:

1
root@www:~ # service httpd restart

查看Apache监听的端口:

1
root@www:~ # netstat -anp | grep httpd

最后就是访问我们的网站,发现已经可以通过HTTPS来访问了

 

附:如果配置,使在访问HTTP站点时强制跳转到对应的HTTPS站点?

只需要在网站根目录下的.htaccess文件中添加以下内容即可:

1
2
3
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

这段话的意思是如果访问的端口不是443的话,那么就强制跳转到对应的HTTPS页面去

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

相关文章
|
1月前
|
前端开发 小程序 应用服务中间件
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
在服务器上正确配置域名https证书(ssl)及为什么不推荐使用宝塔申请免费ssl证书
96 4
|
1月前
|
安全 数据安全/隐私保护
HTTPS加密的过程
HTTPS加密的过程
|
1月前
|
安全 网络安全 Windows
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
在访问App Service的KUDU工具或使用`az webapp deploy`时遇到SSL错误:`SSL: CERTIFICATE_VERIFY_FAILED`。解决方法是临时禁用Azure CLI的SSL验证。在PowerShell中,设置`$env:ADAL_PYTHON_SSL_NO_VERIFY`和`$env:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION`为1;在Windows命令提示符中,使用`set AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1`。注意,这可能引入安全风险,应仅在必要时使用。
|
1月前
|
监控 安全 网络安全
探讨网站加密访问的安全性问题:HTTPS的防护与挑战
**探讨HTTPS在网站加密中的角色,提供数据加密和身份验证,防范中间人攻击。心脏滴血漏洞示例显示持续维护的必要性。面临证书管理、性能影响和高级攻击挑战,应对措施包括更新、HSTS策略及用户教育。HTTPS是安全基础,但需不断优化以应对新威胁。**
46 2
|
22天前
|
数据安全/隐私保护
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
https【详解】与http的区别,对称加密,非对称加密,证书,解析流程图
13 0
|
25天前
|
安全 算法 Java
Java中的数据加密与安全传输
Java中的数据加密与安全传输
|
29天前
|
数据安全/隐私保护
数据防护之=HTTPS协议增加了<数据加密>
数据防护之=HTTPS协议增加了<数据加密>
|
1月前
|
存储 安全 算法
RSA非对称加密算法中的密钥对生成与传输
RSA非对称加密算法的密钥对生成与传输是信息安全领域的核心问题之一。密钥生成过程需要保证随机性和安全性,而密钥的传输则需要选择适当的方式来确保其保密性和完整性。通过合理的密钥管理和保护措施,可以有效地利用RSA算法保护通信安全,防止信息泄露和篡改。在实际应用中,用户和系统管理员需要结合具体情况选择最佳的密钥生成和传输策略,以达到最佳的安全性和效率。
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:漏洞、加密技术及安全意识的探讨
在数字化时代的浪潮下,网络安全和信息安全成为了全球关注的焦点。本文将深入剖析网络漏洞的成因及其对系统安全性的影响,探讨加密技术在保障数据安全中的关键作用,并强调提升个人和企业的安全意识的必要性。文章旨在为读者提供一个全面的视角,了解网络安全的重要性,以及如何通过技术和意识的提高来防范潜在的网络威胁。
|
1天前
|
机器学习/深度学习 人工智能 安全
数字堡垒之下:网络安全漏洞、加密技术与安全意识的现代博弈
在数字化浪潮中,网络安全成为维护信息资产的重要防线。本文深入探讨了网络安全的薄弱环节—漏洞的存在与利用,分析了加密技术在数据保护中的关键作用,并强调了提升个人与企业的安全意识的必要性。通过具体案例和技术解析,旨在为读者提供一套网络安全的知识框架和实践指南,以期在日益复杂的网络环境中构筑起坚固的数字堡垒。