`
GavinHsueh
  • 浏览: 71071 次
文章分类
社区版块
存档分类
最新评论

LAMP网站申请Let's Encrypt SSL证书升级https

阅读更多

基本概念:

HTTP: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

谷歌、火狐等浏览器厂商也已经扛起HTTPS大旗,对于HTTP站点会提示不安全警告。而且像谷歌、百度等搜索引擎也早已相应HTTPS号召,都声称对HTTPS站点页面友好甚至优先抓取,排名靠前,当然具体实际实施情况就另当别论了。

要让互联网站点都升级到HTTPS协议还需一段时间,但不可否认HTTPS是大势所趋。已过一番折腾,终于将站点升级到https访问。

下图是在部署https之前使用HTTP协议访问效果:

网站环境:

操作系统:centos6.5 x64

web服务:Apache 2.4+ 

免费证书商家:Let's Encrypt SSL

操作流程:

1.安装证书

我使用的是Let's Encrypt SSL免费证书,有效期3个月,需要定期更新。(更多国内外免费SSL证书推荐参考

安装SSL证书我使用的是certbot工具,操作十分简单方便。

下载certbot,并设置权限:

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

使用certbot申请安装证书:

./certbot-auto certonly --webroot --apache -w /data/wwwroot/www.chanzhicms.com -d www.chanzhicms.com

 -w后面是网站的根目录路径,-d后面是申请证书的域名,多个域名的话,在后面继续添加设置多个-d即可。

申请成功后,可以查看到SSL证书的有效截止日期。申请的证书默认存放在 /etc/letsencrypt 目录下。

2.修改Apache配置文件

设置apache的配置文件 /usr/local/apache/conf/httpd.conf,要修改两个地方,找到下面两行将其前面的#去掉即可。

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
然后修改/usr/local/apache/conf/extra/httpd-ssl.conf 文件,将里面内容清空,放入下面内容:
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
SSLProxyCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
SSLProxyProtocol all -SSLv2 -SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
Mutex sysvsem default
SSLStrictSNIVHostCheck on

最后修改网站的单独配置文件,/usr/local/apache/conf/vhost/www.chanzhicm.com.conf ,原本只有80端口配置,这里需要我们加上443端口的配置:

    ServerAdmin admin@linuxeye.com
    DocumentRoot "/data/wwwroot/www.chanzhicms.com"
    ServerName www.chanzhicms.com
    ServerAlias chanzhicms.com
    ErrorLog "/data/wwwlogs/www.chanzhicms.com_error_apache.log"
    CustomLog "/data/wwwlogs/www.chanzhicms.com_apache.log" combined    SetOutputFilter DEFLATE
    Options FollowSymLinks ExecCGI
    Require all granted
    AllowOverride All
    Order allow,deny
    Allow from all
    DirectoryIndex index.html index.phpListen 443    DocumentRoot "/data/wwwroot/www.chanzhicms.com"
    ServerName www.chanzhicms.com:443
    ServerAlias www.chanzhicms.com
    ErrorLog "/data/wwwlogs/www.chanzhicms.com_error_apache.log"
    ServerAdmin admin@linuxeye.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/www.chanzhicms.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.chanzhicms.com/privkey.pem
            SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
        Require all granted

上面配置中的网站名称、网站路径、证书路径等信息,大家根据自己的具体情况填写。

注意:

这里必须要特别强调一点,因为我的Apache版本是2.4+的,在Directory中,一定要加上一条 Require all granted ,否侧会出现网站HTTP访问正常,但https访问提示 403 forbidden。这条命令是apache2.4新增加的,用以替代allow,deny以及order指令。

最后,重启Apache!重启Apache!重启Apache!

 

使用https访问网站,查看是否生效。如下图:

小结:

网站升级https其实并不复杂,只是一些细节问题上可能会因环境而异,所以不要盲目地仿照他人操作流程,一定要先看服务器环境。其次,因为https使用443端口,所以服务器防火墙要放开443端口访问,我用的阿里云服务器,还会涉及到安全策略设置,所以在操作时,注意检查端口是否监听。

如果大家在部署https访问网站时遇到其他问题,欢迎留言反馈,我们共同学习交流。

 

1
0
分享到:
评论

相关推荐

    PW建站系统(Centos 64位) 操作文档

    可以使用Let's Encrypt免费证书,或者购买商业证书。 #### 8.3 配置定期备份 设置定时任务,定期备份数据库和网站文件,以防止数据丢失。 ### 9. 维护与更新 监控服务器性能,定期检查系统和应用更新,确保安全性...

    apache_2.2.4-win32-x86-no_ssl

    - 由于此版本没有内置SSL,建议安装额外的SSL模块或使用如Let's Encrypt的免费证书服务来提供HTTPS连接,以保障网站的隐私和数据安全。 - 定期更新Apache到最新版本,以获取最新的安全补丁和功能改进。 8. **集成...

    typecho-handsome 个人博客的安装和配置

    1. 申请SSL证书:在Let's Encrypt、阿里云等平台免费申请SSL证书。 2. 安装SSL证书:将证书文件(.crt和.key)上传到服务器,并在Nginx或Apache配置文件中配置HTTPS监听和证书路径。 3. 重启服务器,使配置生效。...

    Linux网站建设技术指南(PDF)

    8. **安全实践**:讲解如何保护服务器免受攻击,包括防火墙配置、安全更新、防止SQL注入和XSS攻击、以及使用Let's Encrypt等免费SSL证书。 9. **故障排查**:介绍如何使用日志分析、调试工具和系统监控工具(如...

    阿里云Linux建站全套工具

    阿里云提供免费的Let's Encrypt证书,或者可以选择购买更高级别的商业证书。 7. **脚本自动化**:工具可能包括bash脚本,用于自动执行一系列配置任务,如一键安装LAMP/LNMP(Linux、Apache/Nginx、MySQL、PHP)环境...

    Run Your Own Web Server Using Linux & Apache

    可以使用Let's Encrypt提供的免费证书,并通过certbot工具轻松安装。 为了让Web服务器更加强大,你可能需要集成其他服务和工具。例如,MySQL或MariaDB用于数据库管理,PHP(通过mod_php模块与Apache集成)用于处理...

    完整的roundcube邮件系统搭建过程2.rar

    你可以使用Let's Encrypt免费证书。 2. 安全设置:修改默认的管理员用户名,定期更新数据库密码,禁用不必要的插件,限制失败登录尝试。 七、维护与升级 1. 监控:确保定期检查日志文件,以便发现任何异常行为。 2....

    OneClickDesktop:一键式脚本,可在具有浏览器RDPVNC访问权限Linux服务器上安装远程桌面环境

    一键免费的SSL证书来自Let's Encrypt 您可以从浏览器访问远程桌面,而无需RDP或VNC软件。系统要求全新安装的服务器,具有Ubuntu 18.04 / 20.04 LTS 64位,Debian 10 64位或CentOS 7/8 64位系统不要安装任何Web...

    Linux服务器宝塔面板安装视频教程.rar

    10. **拓展功能**:除了基础功能外,宝塔面板还支持扩展插件,如Redis、Memcached、Let's Encrypt等,以满足更多特定需求。教程最后可能会介绍如何安装和使用这些插件。 通过学习这个“Linux服务器宝塔面板安装视频...

    lamponsteroids:用于CentOS设置强大而安全的Web服务器的各种角色

    **Let's Encrypt** 是一个免费的SSL/TLS证书颁发机构,lamponsteroids的角色支持自动获取和安装这些证书,以实现HTTPS加密连接,提高网站的安全性。 **Nginx** 是一个高性能的HTTP和反向代理服务器,常用于负载均衡...

    html-css-digitalocean

    6. **SSL证书**: 为了提供安全的HTTPS连接,可以使用Let's Encrypt等免费证书服务。 这个"html-css-digitalocean"项目可能涵盖了从编写基本的HTML和CSS页面,到在DigitalOcean上设置和部署网站的完整流程。通过学习...

Global site tag (gtag.js) - Google Analytics