让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

news/2024/5/14 6:12:21/文章来源:https://blog.csdn.net/qq_36404808/article/details/114308782
  • 本文永久地址
  • 为什么要用HTTPS
  • 相关简介
    • Let’s Encrypt
    • Certbot
    • 便宜SSL
  • 获取HTTPS证书
    • 命令行
      • 安装Certbot
      • 申请证书
    • 图形化
  • 部署HTTPS证书
  • 设置HTTP强制跳转HTTPS
  • 命令行下设置证书自动续期
  • 附:
    • 其它环境下的证书部署
    • Nginx相关命令
    • crontab相关命令
  • 参考文档

本文永久地址

http://www.lucien.ink/archives/81/

为什么要用HTTPS

网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可能会被运营商劫持,然后在网站里显示一些莫名其妙的广告。
1
有HTTPS的时候,通俗地讲所有的数据传输都会被加密,你和网站之间的数据交流也就更加安全。
2

相关简介

Let’s Encrypt

如果要启用HTTPS,我们就需要从证书授权机构处获取一个证书,Let’s Encrypt 就是一个证书授权机构。我们可以从 Let’s Encrypt 获得网站域名的免费的证书。

Certbot

Certbot是Let’s Encrypt推出的获取证书的客户端,可以让我们免费快速地获取Let’s Encrypt证书。

便宜SSL

便宜SSL是一家国内的SSL证书提供商,同样也拥有免费证书。而且提供丰富的工具: https://www.pianyissl.com/tools。

获取HTTPS证书

获取SSL证书的过程大体上都一样。既可以图形化,也可以命令行,最后实现的效果都完全一样,大家各取所需。

命令行

安装Certbot

进入Certbot的官网,选择你所使用的软件和系统环境,然后就会跳转到对应版本的安装方法,以Ubuntu + Nginx为例。

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot 

申请证书

安装完成后执行:

certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com

这条命令的意思是为以/var/www/example为根目录的两个域名example.com和www.example.com申请证书。
如果你的网站没有根目录或者是你不知道你的网站根目录在哪里,可以通过下面的语句来实现:

certbot certonly --standalone -d example.com -d www.example.com

使用这个语句时Certbot会自动启用网站的443端口来进行验证,如果你有某些服务占用了443端口,就必须先停止这些服务,然后再用这种方式申请证书。
证书申请完之后,Certbot会告诉你证书所在的目录,一般来说会在/etc/letsencrypt/live/这个目录下。

图形化

进入便宜SSL的官网https://www.pianyissl.com,注册了账号之后,选择那个体验版的免费测试,然后点确认购买。
1
输入域名并点击生成CSR并提交申请按钮。
2
点击确定按钮。
3
接下来会选择验证方式。
4
这里我选择邮箱验证方式,其它另外两种依照你的个人情况而定,反正就是为了验证域名是不是你的而已。
5
大约过几分钟,邮箱会收到一封验证邮件,如下图,复制②指向的一串验证码,点击①处的Here链接。
6
输入验证码,点击Next>按钮。
7
提示已经输入正确的验证码,点击Close Window。
8
大约等到10分钟左右,再次登陆https://www.pianyissl.com,进入个人中心,可以看到已经成功申请SSL证书,点击查看详情。
9
此时你可以点击箭头所指的证书打包下载,然后免费的SSL证书就可以下载到本地了,下载后可以看到SSL压缩包内的文件。
10

部署HTTPS证书

找到网站的Nginx配置文件,找到listen 80;,修改为listen 443;在这一行的下面添加以下内容:

ssl on;
ssl_certificate XXX/fullchain.pem;  修改为fullchain.pem所在的路径
ssl_certificate_key XXX/privkey.pem;  修改为privkey.pem所在的路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

保存退出后,通过nginx -t来检查配置文件是否正确,有错误的话改之即可。配置文件检测正确之后,通过nginx -s reload来重载配置文件。
然后通过访问https://example.com来查看是否配置成功。
如果发现无法访问或者是加载不出来的话检查一下443端口有没有开启!

设置HTTP强制跳转HTTPS

上一步成功之后大家可能会发现通过原来的http://example.com无法访问网页了,因为HTTP默认走的是80端口,我们刚才将其修改为443端口了。在这里我们可以在配置文件的最后一行加入以下代码:

server {listen 80;server_name example.com;  这里修改为网站域名rewrite ^(.*)$ https://$host$1 permanent;
}

意思是每一个通过80端口访问的请求都会强制跳转到443端口,这样一来访问http://example.com的时候就会自动跳转到https://example.com了。

命令行下设置证书自动续期

有心的小伙伴可能会留意到我们刚才申请的整数的有效期只有90天,不是很长,可是我们可以通过Linux自带的cron来实现自动续期,这样就相当于永久了。
随便找一个目录,新建一个文件,名字随便起,在这里以example为例,在里面写入0 */12 * * * certbot renew --quiet --renew-hook “/etc/init.d/nginx reload”,保存。
然后在控制台里执行crontab example一切都OK了。原理是example里存入了一个每天检查更新两次的命令,这个命令会自动续期服务器里存在的来自Certbot的SSL证书。然后把example里存在的命令导入进Certbot的定时程序里。

附:

其它环境下的证书部署

https://www.pianyissl.com/support/

Nginx相关命令

nginx -t  验证配置是否正确
nginx -v  查看Nginx的版本号
service nginx start  启动Nginx
nginx -s stop  快速停止或关闭Nginx
nginx -s quit  正常停止或关闭Nginx
nginx -s reload  重新载入配置文件

crontab相关命令

cat /var/log/cron  查看crontab日志
crontab -l  查看crontab列表
crontab -e  编辑crontab列表
systemctl status crond.service  查看crontab服务状态
systemctl restart crond.service  重启crontab

参考文档

https://lucien.ink/archives/81/
https://www.cnblogs.com/zoro-zero/p/6590503.html
http://blog.csdn.net/gsls200808/article/details/53486078
https://certbot.eff.org/#ubuntuxenial-other
http://nginx.org/en/docs/http/configuring_https_servers.html

转载自:https://blog.csdn.net/xs18952904/article/details/79262646
本人博客地址:http://m.readers.fun

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_852086.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享10个超棒的设计素材网站

对于设计师来说,在工作中遇到的最糟糕的情况,莫过于灵感枯竭。而解决这个问题最好的方式,就是多逛设计素材网站。通过这种方式,不仅可以欣赏其他设计师们的作品,让自己脑洞大开,而且还能收获丰富的资源&…

【首篇】我想谈谈大型网站架构

如果能够学到架构理论,是一件很幸福的事,而要是能够从0到1搭建一个完整的大型网站,并且,将其投入到生活当中,还能被大多数人所使用,则是一件很幸运的事了。 这系列博客不谈业务,只谈技术&#…

SEO网站标题优化

【阅读文章申明】 作者只是想把自己实践中的经验分享给大家,如果文章里面有在大神面前显的很低级的知识点。那么大神你可以不看,请不要发一些“浪费流量”“辣鸡”之类嘲讽的话,这也不是交流的一种方式。每一篇文章都是作者自己。截图&#x…

linux 内核位置无关,常用的设备无关启动时参数 - Linux操作系统内核启动参数详解_Linux教程_Linux公社-Linux系统门户网站...

常用的设备无关启动时参数。1、init=...设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 k…

浏览器网站打印标签

网站通过浏览器来打印标签 文章目录网站通过浏览器来打印标签一、标签需要条码?二、使用前的标签打印机的配置三、使用步骤1.引入maven包2.编写生成条码的工具类3.封装调用接口,生成条码,并跳转到标签打印页面。4.页面调用浏览器的打印工具5.…

10个很棒的学习Android 开发的网站

10个很棒的学习Android 开发的网站 看到江湖旅人 写的《10个很棒的学习iOS开发的网站 - 简书》,所以就忍不住写Android 啦,也希望对大家有帮助。 我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议&…

VS2012发布网站详细步骤

1、打开你的VS2012网站项目,右键点击项目》菜单中 重新生成一下网站项目;再次点击右键》发布: 1、打开你的VS2012网站项目,右键点击项目》菜单中 重新生成一下网站项目;再次点击右键》发布&am…

网站出现无法连接数据库错误,Temp文件夹权限对网站的影响

服务器上几个ASP Access的网站出现无法连接数据库的问题,数据库文件夹的权限没有问题,重启IIS,重启服务器,都不能解决。 最后解决方法是,修改Windows下Temp文件夹的user权限,因为数据库的读写会在系统中产…

ASP.NET:部署网站

IIS:信息服务器 必须在服务器上装上IIS,再把做的网页放在IIS上。 “这台配制够高的电脑装了IIS之后才叫做服务器” 部署ISS的流程: 1.打开控制面板,将查看方式改为大图标,点击“程序和功能”,点击“启用…

【CSS+DIV】(3)——网上购物网站

背景:CSS学习已经完成了,这部分内容比较好玩,后面还分析制作了各种小例子,UI的内容做的十分绚丽多彩,如果加上后台内容就会更加完美了。目前网络上的购物网站已经越来越多了,淘宝、京东、当当等大型购物网站…

HTML网站世界的多姿多彩---C#

前言:学习HTML的时候,感觉特别好玩,同时在这些点滴中也学会了非常多的知识。下面是总结的网站的知识点,和大家分享一下。 (一)入门 1.准备:HTML是通用语言(只需要有浏览器和记事本…

服务器(6)--Nginx实现HTTPS网站设置

一、HTTPS 全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是…

考试系统维护--网站发布注意事项

考试系统维护过程中做的最多的事情之一就是网站发布,从最初拿过来的旧的考试系统搭建发布,到自己修改后新的考试系统再次一次次发布测试,甚至还有各种备份服务器的发布,发布网站这件事情也就从最初的慢慢吞吞,磕磕绊绊…

小心错误使用EasyUI 让网站性能减半

小心错误使用EasyUI 让网站性能减半 背景: 最近接手了公司一个做了小一年的项目—高校教务基础系统,先不谈需求,和系统架构,直接上来就被抛来了一个问题----基础性能太差了,一个网页打开要好几秒。我了个天&#xff0c…

Python爬虫:爬取链接被加密的网站中的视频《传闻中的陈芊芊》

最近,腾讯视频上映了一部名为《传闻中的陈芊芊》的网剧,又甜又虐又搞笑,就连我这个不怎么看剧的人,看了几分钟左右的剪辑就突然开始了我的追剧之路。剧情大概是男主… 呀!跑题了!差点就又开始了…/偷笑/偷笑…

码农如何快速打造一个有设计感的网站

[核心提示] 还在用 WordPress 建站吗?落后了亲!赶紧试试 Twitter Bootstrap 吧。注:拥有属于自己的网站是很多人的梦想,但大多数人只能借助像 WordPress 这样的 CMS 实现,甚至很多公司网站也是这样。但这些网站大多数看…

ASP.NET网站开发

LINQ TO SQL概述LINQ TO SQL最重要的一个功能就是为数据库创建一个对象模型(由基于.NET框架的类组成),并将该对象模型映射到数据库中的相应对象使用VS创建DBML数据上下文 DataContext又称为数据上下文,它为LINQ to SQL提供操作数据…

网站分析之 --- PV、UV、IP、VV

PV是网站分析的一个术语,用以衡量网站用户访问的网页的数量。对于广告主,PV值可预期它可以带来多少广告收入。一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新…

文章/网站分享工具——百度分享

今天分享一个小工具&#xff0c;百度分享&#xff0c;十分简单。今天就是贴代码 js初始化参数(这里只用到页面分享功能&#xff0c;图片分享功能和画词分享功能稍厚给出网址&#xff0c;可自行查看API) * 分享 * <script>window._bd_share_config {"common&quo…

用css网站布局之十步实录

第一步&#xff1a;规划网站 第二步&#xff1a;创建html模板及文件目录等 第三步&#xff1a;将网站分为五个div 网页基本布局 第四步&#xff1a;网页布局与div浮动等 第五步&#xff1a;网页主要框架之外的附加结构的布局与表现 第六步&#xff1a;页面内的基本文…