免费SSL证书Let’s Encrypt安装使用教程:Apache…

免费SSL证书Let’s Encrypt安装使用教程:Apache…,第1张

免费SSL证书Let’sEncrypt安装使用教程:Apache…

Let'sEncrypt是国外公开的免费SSL项目,由Linux基金会托管。它的头很大,由Mozilla、Cisco、Akamai、IdenTrust和EFF等发起。其目的是自动向网站发放和管理免费证书,从而加快互联网从HTTP到HTTPS的过渡。目前,脸书等大公司已经开始加入赞助行列。

Let'sEncrypt已经被IdenTrust交叉签名,这意味着它的证书现在可以被Mozilla、Google、微软、苹果等主流浏览器所信任。你只需要在Web服务器的证书链中配置交叉签名,其他的事情浏览器客户端会自动处理。Let'sEncrypt易于安装,未来大规模采用的可能性很大。

虽然Let'sEncrypt还在测试中,但是市场需求很大,很多朋友已经迫不及待的安装使用Let'sEncrypt了。Let'sEncrypt向广大网站提供免费的SSL证书,这对站长、网民、整个Web互联网都是非常有利的。有利于整个互联网的安全。

本文将为大家讲解如何获取免费的Let'sEncrypt的SSL证书,并附上Apache和Nginx的SSL证书的配置方法。

免费SSL证书让我们加密安装教程:Apache和Nginx配置方法

一、安装Let'sEncrypt的免费SSL准备

1.让我们加密官方网站:

官方网站:https://letsencrypt.org/

项目主页:https://github.com/letsencrypt/letsencrypt

2.Let'sEncrypt脚本的安装取决于环境:(这部分可以跳过,因为官方的Let'sEncrypt脚本会被自动检测并安装)

# Debianapt-get install git# CentOS 6yum install centos-release-SCL && yum updateyum install python27scl enable python27 bashyum install python27-python-devel python27-python-setuptools python27-python-tools python27-python-virtualenvyum install augeas-libs dialog gcc libffi-devel openssl-devel python-develyum install python-argparse# CentOS 7yum install -y git python27yum install -y augeas-libs dialog gcc libffi-devel openssl-devel python-develyum install python-argparse

3.检查您的VPS主机上安装了哪个 *** 作系统版本,您可以执行命令:cat/etc/issue或cat/etc/redhat-release。

二。获取“让我们加密”的免费SSL证书

1.获取Let'sEncrypt的免费SSL证书非常简单。您只需要执行下面的命令,SSL证书和私钥就会在您的VPS上自动生成。

git clone https://github.com/letsencrypt/letsencryptcd letsencrypt./letsencrypt-auto

2.经过部落测试,以上代码对Debian系统的支持最好,可以完成自动检测并安装相应的软件。如果使用的是其他Linux系统,Redhat或CentOS6可能需要配置EPEL软件源码,Python需要2.7以上版本。

3.执行上述命令后,会d出一个对话框,同意用户协议。

4.然后会提示你关闭Nginx或者Apache。

5.让我们加密需要使用端口80和443,所以你需要关闭那些占用这两个端口的应用程序。

6.当你读到以下内容时,说明你的Let'sEncrypt免费SSL证书已经成功获得。

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at   /etc/letsencrypt/live/freehao123.org/fullchain.pem. Your cert will   expire on 2016-03-09. To obtain a new version of the certificate in   the future, simply run Let's Encrypt again. - If like Let's Encrypt, please consider supporting our work by:   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate   Donating to EFF:                    https://eff.org/donate-le

7.见下图:

三。使用脚本快速获得加密SSL证书

1.抛开以上烦恼,不妨尝试使用脚本快速获取Let'sEncryptSSL证书,调用acme_tiny.py进行认证、获取和更新证书,无需额外依赖。

1.项目主页:https://github.com/xdtianyu/scripts/tree/master/lets-encrypt

2.在本地下载:

wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.confwget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.shchmod +x letsencrypt.sh

3.配置文件。您只需将DOMAIN_KEYDOMAIN_DIR域修改为您自己的信息。

ACCOUNT_KEY="letsencrypt-account.key"DOMAIN_KEY="freehao123.com.key"DOMAIN_DIR="/var/www/freehao123.com"DOMAINS="DNS:freehao123.com,DNS:www.freehao123.com"

4.这个脚本在Debian下正常运行,但是如果你使用的是CentOS,还需要在letsencrypt.sh中修改openssl.cnf的位置,先找到你的CentOS的openssl.cnf位置。然后打开letsencrypt.sh,用新路径替换路径/etc/ssl/openssl.cnf,例如/etc/PKI/TLS/openssl.cnf。

PS:20151214更新,此脚本已更新,现在无需修改CentOS的openssl.cnf。感谢ty博主提醒。

5.所需的密钥文件将在执行过程中自动生成。运行:

./letsencrypt.sh letsencrypt.conf

6.注意域名需要绑定目录/var/www.freehao123.com,即可以通过http://freehao123.comhttp://www.freehao123.com访问目录/var/www.freehao123.com进行域名验证。

7.正常按照上面的 *** 作就可以成功获取Let'sEncryptSSL证书,但是部落测试后最大的问题是DNS查询超时。rdquo,由于域名的DNS解析问题,无法验证域名,因此获取SSL证书不成功。

Traceback (most recent call last):  File "/tmp/acme_tiny.py", line 198, in     main(sys.argv[1:])  File "/tmp/acme_tiny.py", line 194, in main    signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca)  File "/tmp/acme_tiny.py", line 149, in get_crt    domain, challenge_status))ValueError: hkh.freehao123.info challenge did not pass:  {u'status': u'invalid', u'validationRecord':  [{u'url': u'http://hkh.freehao123.info/.well-known/acme-challenge/ sikHlqvbN4MrWkScgr1oZ9RX-lR1l__Z7FWVLhlYR0Q', u'hostname':  u'hkh.freehao123.info', u'addressUsed': u'', u'port': u'80',  u'addressesResolved': None}],   u'https://acme-v01.api.letsencrypt.org/acme/challenge/ 5m1su6O5MmJYlGzCJnEUAnvhweAJwECBhEcvsQi5B2Q/1408863', u'token':  u'sikHlqvbN4MrWkScgr1oZ9RX-lR1l__Z7FWVLhlYR0Q', u'error':  {u'type': u'urn:acme:error:connection', u'detail': u'DNS query timed out'}, u'type': u'http-01'}

8.对比后发现,国内的DNSPOD、阿里云DNS、CloudXNS等。都会有让我们加密的域名验证超时,而外国名字廉价DNS,LinodeDNS,Domain.comDNS等。都没有问题。

四。Ngnix配置让我们加密免费SSL

1.注意检查你的Let'sEncrypt免费SSL证书保存的位置,一般在/etc/letsEncrypt/live/freeHao123.com下。

2.fullchain.pem是公钥,privkey.pem是私钥。有了这两个文件,我们就可以在Ngnix上配置SSL证书。OneinStack一键工具在创建虚拟主机时可以选择为网站配置SSL。

3.如果OneinStack有用,那么最简单的方法就是用fullchain.pem和privkey.pem替换原来的CRT和Key文件,这样做的好处是可以保留Ngnix配置的SSL证书路径,只要简单修改引用的公钥和私钥即可。

4.当然,为了后期 *** 作的方便,我们建议保留Let'sEncrypt生成的SSL证书,直接在网站的配置中修改SSL证书引用路径。使用VPS主机创建网站时,会为网站生成一个.conf文件。

5.这,这,。conf文件,直接替换ssl_certificate和ssl_certificate路径即可,如下所示:

6.OneinStack的Nginx配置SSL证书代码示例:

server { listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/freehao123.org/fullchain.pem;//改动地方1 ssl_certificate_key /etc/letsencrypt/live/freehao123.org/privkey.pem;//改动地方2 ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-SHA384:ECDHE-RSA-:ECDHE:!DES:!3DES:!MD5:!DSS:!PKS; ssl_session_cache builtin:1000 shared:SSL:10m; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; server_name www.freehao123.org freehao123.org; access_log /data/wwwlogs/www.freehao123.org_nginx.log combined; index index.html index.htm index.php; include /usr/local/nginx/conf/wordpress.conf; root /data/wwwroot/www.freehao123.org; if ($host != www.freehao123.org) {     rewrite ^/(.*)$ $scheme://www.freehao123.org/$1 permanent;     } server { listen 80; server_name www.freehao123.org; rewrite ^/(.*) https://$server_name/$1 permanent; }

7.最后,重启Nginx,打开浏览器,看到SSL证书已经成功配置。

8.对于已经安装了LNMP的朋友,可以参考下面的代码来修改自己的Nginx配置。

server { listen 443 ssl;    //如果需要spdy也可以加上,lnmp1.2及其后版本都默认支持spdy,lnmp1.3 nginx 1.9.5以上版本     默认支持http2 server_name www.freehao123.com;     //域名 index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/www.freehao123.com;            //网站目录 ssl_certificate /etc/letsencrypt/live/www.freehao123.com/fullchain.pem;    //前面生成的证书 ssl_certificate_key /etc/letsencrypt/live/www.freehao123.com/privkey.pem;   //前面生成的密钥 ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; include wordpress.conf;  //这个是伪静态 #error_page 404 /404.html; location ~ [^/]\.php(/|$) { # comment try_files $uri =404; to enable pathinfo try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf;     //lnmp 1.0及之前版本替换为include fcgi.conf; #include pathinfo.conf; }

V.Apache为免费SSL配置Let'sEncrypt

1.首先我们需要修改Apache的配置,打开/usr/local/Apache/conf/httpd.conf,寻找httpd-ssl去掉前面的#,然后执行命令(注意要把路径改成自己的):

    cat >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF     Listen 443     AddType application/x-x509-ca-cert .crt     AddType application/x-pkcs7-crl .crl     SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH     SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH     SSLHonorCipherOrder on     SSLProtocol all -SSLv2 -SSLv3     SSLProxyProtocol all -SSLv2 -SSLv3     SSLPassPhraseDialog builtin     SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"     SSLSessionCacheTimeout 300     SSLMutex "file:/usr/local/apache/logs/ssl_mutex"     EOF

2.然后,在您创建的网站的Apache配置结束时 <VirtualHost *:443> DocumentRoot /home/wwwroot/www.freehao123.com   //网站目录 ServerName www.freehao123.com:443   //域名 ServerAdmin [email protected]      //邮箱 ErrorLog "/home/wwwlogs/www.freehao123.com-error_log"   //错误日志 CustomLog "/home/wwwlogs/www.freehao123.com-access_log" common    //访问日志 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.freehao123.com/fullchain.pem   //之前生成的证书 SSLCertificateKeyFile /etc/letsencrypt/live/www.freehao123.com/privkey.pem    //之前生成的密钥 <Directory "/home/wwwroot/www.freehao123.com">   //网站目录 SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All Order allow,deny Allow from all DirectoryIndex index.html index.php </Directory> </VirtualHost>

3.最后,重启Apache,然后打开浏览器查看SSL证书配置是否成功。

六。续订免费的加密SSL证书

1.我们来加密一下免费SSL证书的有效期是90天,也就是说你要每三个月更新一次。对于官方方法获得的免费SSL证书,不需要更改Apache和Nginx配置代码,通过执行以下代码(请修改域名和邮箱)即可自动更换新证书:

./letsencrypt-auto certonly --renew-by-default --email [email protected]  -d freehao123.org -d www.freehao123.org

2.如果上面的脚本是用来快速获取Let'sEncrypt的免费SSL证书,那么只要在90天内再次执行该命令:。/letsencrypt.shletscrypt.conf。

3.cron定时任务。证书每月自动更新一次,可以在脚本末尾添加重载服务如服务nginxreload。

0 0 1 * * /etc/nginx/certs/letsencrypt.sh /etc/nginx/certs/letsencrypt.conf >>  /var/log/lets-encrypt.log 2>&1

七。让我们加密的免费SSL证书的使用摘要[/s2/]

让我们用一种简单的方法获得加密免费SSL证书。不管是哪种方式,只要能拿到证书和密钥,就可以在自己的服务器上配置SSL。上面提到了Apache和Nginx的配置方法。如果有自己的虚拟主机面板,可以直接在后台添加证书和私钥文件。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/764903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存