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

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
分享到:
评论

相关推荐

    Let's Encrypt官网一键式免费申请ssl证书脚本

    Let's Encrypt官网一键式免费申请ssl证书脚本, 使用方法是放到linux环境下, 给出执行权限rwx即可 chmod -R 700 certbot-auto , 之后./certbot-auto执行, 过程中会让你选择apache(1)还是nginx(2), 之后还会让你输入...

    windows Let's Encrypt工具

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! 3、Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了...

    Let's Encrypt证书申请

    Let's Encrypt 证书申请 SSL证书 SSL 详细说明如何申请Let's Encrypt证书

    Let’s Encrypt免费SSL证书获取以及自动续签

    Let’s Encrypt免费SSL证书获取以及自动续签,配合Nginx实测有效

    Shell脚本方式获取 Let's Encrypt 的免费 SSL 证书

    NULL 博文链接:https://happysoul.iteye.com/blog/2390688

    自动获取Let's Encrypt的免费SSL证书

    NULL 博文链接:https://happysoul.iteye.com/blog/2390306

    申请免费SSL证书说明文档

    实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题 Let's Encrypt免费SSL证书的出现,也会对传统提供付费SSL证书服务的商家有不小的打击。到目前为止,Let's Encrypt获得IdenTrust交叉签名,这就是说可以应用...

    letsencrypt-win-simple.V1.9.3(Let's Encrypt For Windows)

    Let's Encrypt是可以签发免费SSL/TLS证书的CA机构,它是为普及HTTPS而发起的,推动了基础DV SSL证书的普及。其证书已经被Mozilla、Google、Microsoft和Apple等主流浏览器支持,只需要web服务器配置好HTTPS证书,...

    Https 之 Let's Encrypt

    Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家...

    acme 协议, 可以从 let‘s encrypt 生成免费的证书

    简单来说acme.sh 实现了 acme 协议, 可以从 let‘s encrypt 生成免费的证书。 acme.sh 有以下特点: 一个纯粹用Shell(Unix shell)语言编写的ACME协议客户端。 完整的ACME协议实施。 支持ACME v1和ACME v2 支持...

    Data Encrypt System (DES)

    一个DES加密系统的实现。程序本身运行速度比较慢,不过结构还是比较清晰的,可以用于帮助对DES的学习

    基于let's encrypt的通配符证书.pptx

    介绍了使用letsencrypt 申请多种 https 免费证书的不同方法,其中用 dns 的方式申请通配符的证书比较省事,在有公网映射,内外网80和443端口映射不一致的环境下推荐使用。

    Let's Encrypt Windows认证客户端

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起。 Let's Encrypt证书有效期三个月,每三个月需要续签证书。 Let's Encrypt注册主域名认证频率...

    Go-LetsProxy-快速获取Let'sEncrypt证书并提供反向代理

    LetsProxy - 快速获取 Let's Encrypt证书并提供反向代理

    Let's Encrypt Win Simple V1.9.3.zip

    Let's Encrypt免费SSL证书自动获取和部署工具,放在这里主要是为方便下载,因为官方的下载链接通常很难很难正常下载。以后有新的版本出来同样跟进发布上来。

    lets encrypt.rar

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了Let's...

    Let's Encrypt 给网站加 HTTPS 完全指南certbot - cstopery1

    Let's Encrypt 给网站加 HTTPS 完全指南certbot - cstopery1

    开启OCSP提升https证书验证效率解决Let’s Encrypt SSL证书访问慢的问题

    如果网站部署了免费的Let’s Encrypt证书时,第一次https打开此网站时会显得很慢,往往需要等待四五秒才能正常打开,这是由于特殊原因,ocsp.int-x3.letsencrypt.org服务器IP无法正常被解析。 为了提升网站访问体验...

    Certify The Web(ssl证书管理器)5.0.12.exe

    Certify The Web 是一款专业好用的IIS的免费 ssl证书管理器 ,由Let's Encrypt提供支持,又叫Certify SSL Manager,能帮助广大站长全自动从letsencrypt.org轻松申请、安装并自动续订IIS/Windows服务器的免费SSL/TLS...

Global site tag (gtag.js) - Google Analytics