让网站永久拥有HTTPS-申请免费SSL证书并自动续期Let’sEncrypt为什么要用HTTPS网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可能会被运营商劫持,然后在网站里显示一些莫名其妙的广告。有HTTPS的时候,通俗地讲所有的数据传输都会被加密,你和网站之间的数据交流也就更加安全。相关简介Let’sEncrypt如果要启用HTTPS,我们就需要从证书授权机构处获取一个证书,Let’sEncrypt就是一个证书授权机构。我们可以从Let’sEncrypt获得网站域名的免费的证书。CertbotCertbot是Let’sEncrypt推出的获取证书的客户端,可以让我们免费快速地获取Let’sEncrypt证书。便宜SSL便宜SSL是一家国内的SSL证书提供商,同样也拥有免费证书。而且提供丰富的工具:/tools。获取HTTPS证书获取SSL证书的过程大体上都一样。既可以图形化,也可以命令行,最后实现的效果都完全一样,大家各取所需。命令行安装Certbot进入Certbot的官网,选择你所使用的软件和系统环境,然后就会跳转到对应版本的安装方法,以Ubuntu Nginx为例。monsudoadd-apt-repositoryppa:certbot/certbotsudoapt-getupdatesudoapt-getinstallcertbot申请证书安装完成后执行:certbotcertonly--webroot-w/var/这条命令的意思是为以/var/www/example为根目录的两个域名和申请证书。如果你的网站没有根目录或者是你不知道你的网站根目录在哪里,可以通过下面的语句来实现:-d使用这个语句时Certbot会自动启用网站的443端口来进行验证,如果你有某些服务占用了443端口,就必须先停止这些服务,然后再用这种方式申请证书。证书申请完之后,Certbot会告诉你证书所在的目录,一般来说会在/etc/letsencrypt/live/这个目录下。图形化进入便宜SSL的官网,注册了账号之后,选择那个体验版的免费测试,然后点确认购买。输入域名并点击生成CSR并提交申请按钮。点击确定按钮。接下来会选择验证方式。这里我选择邮箱验证方式,其它另外两种依照你的个人情况而定,反正就是为了验证域名是不是你的而已。大约过几分钟,邮箱会收到一封验证邮件,如下图,复制②指向的一串验证码,点击①处的Here链接。输入验证码,点击Next>按钮。提示已经输入正确的验证码,点击CloseWindow。大约等到10分钟左右,再次登陆,进入个人中心,可以看到已经成功申请SSL证书,点击查看详情。此时你可以点击箭头所指的证书打包下载,然后免费的SSL证书就可以下载到本地了,下载后可以看到SSL压缩包内的文件。部署HTTPS证书找到网站的Nginx配置文件,找到listen80;,修改为listen443;在这一行的下面添加以下内容:sslon;ssl_certificateXXX/fullchain.pem;修改为fullchain.pem所在的路径ssl_certificate_keyXXX/privkey.pem;修改为privkey.pem所在的路径ssl_session_timeout5m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_prefer_server_cipherson;保存退出后,通过nginx-t来检查配置文件是否正确,有错误的话改之即可。配置文件检测正确之后,通过nginx-sreload来重载配置文件。然后通过访问来查看是否配置成功。如果发现无法访问或者是加载不出来的话检查一下443端口有没有开启!设置HTTP强制跳转HTTPS上一步成功之后大家可能会发现通过原来的无法访问网页了,因为HTTP默认走的是80端口,我们刚才将其修改为443端口了。在这里我们可以在配置文件的最后一行加入以下代码:server{listen80;server_;这里修改为网站域名rewrite^(.*)$快速停止或关闭Nginxnginx-squit正常停止或关闭Nginxnginx-sreload重新载入配置文件crontab相关命令cat/var/log/cron查看crontab日志crontab-l查看crontab列表crontab-e编辑crontab列表systemctlstatuscrond.service查看crontab服务状态systemctlrestartcrond.service重启crontab参考文档https://lucien.ink/archives/81//gsls/article/details//#ubuntuxenial-other/en/docs/http/configuring_https_servers.html