为了学习或工作,我们可能需要将域名升级为HTTPS。比如你要开发微信公众号、小程序相关的应用,在初始化的时候,我们需要填写HTTPS域名作为验证。本文记录一个HTTPS域名配置的完整过程,说HTTPS证书是一笔不小的费用。许多人感到无能为力,负担不起。阿里云提供免费证书,有效期为一年。本文中的证书使用的是阿里云的免费证书,Let'sEncrypt也很好申请。下面主要记录免费的阿里云证书和证书配置过程[toc]前提准备已经申请了自己的域名注册阿里云账号,当然要有自己的服务器,安装Nginx,并验证域名以后需要申请阿里云的免费证书购买证书控制台搜索SSL,点击“购买证书”选择单个域名——DVSSL——免费版,可以看到费用为0,如果支付成功,会提示申请证书,进入证书控制点击证书申请,填写信息域名验证方式我选择手动“文件验证”方式,如果你服务器是阿里云,选择“自动DNS验证”会很方便,这里我们就按照套路这样,也算是了解运维流程,准备验证文件。这里所谓的验证,其实就是能够通过上面的域名访问验证文件。如果你不能访问它,你当然不能使用它。这里的Nginx配置可以注意一下。下载证书并不困难。根据自己的服务器类型下载。这里我们选择Nginx来上传证书。配置Nginx,我们把ssl证书放在/ssl(目录可以选择),把下载的证书文件解压后,上传到这个目录,贴上Nginx的配置,记得改配置server后重启Nginx{#听80;#监听80端口,如果所有访问都必须是HTTPS,需要取消这一行listen443ssl;服务器名xxx.com;#域名#添加ssl#sslon;#如果HTTPs访问是强制的,这一行应该打开ssl_certificate/ssl/xxxx.pem;ssl_certificate_key/ssl/xxxxx.key;ssl_session_cache共享:SSL:1m;ssl_session_timeout5m;#指定openssl支持的密码格式ssl_protocolsSSLv2SSLv3TLSv1.2;ssl_ciphersHIGH:!aNULL:!MD5;#密码加密方式ssl_prefer_server_cipherson;#依赖于SSLv3和TLSv1协议的服务器密码将优先于客户端密码#定义主页索引目录和名称位置/{root/usr/share/Nginx/html;indexindex.htmlindex.htm;}#重定向错误页面到/50x.htmlerror_page500502503504/50x.html;location=/50x.html{root/usr/share/Nginx/html;}}然后就可以享受HTTPS访问体验了Nginx排查技巧在配置过程中,可能会出现访问无响应等各种问题,这时候不要惊慌,我们有个思路,一定要观察访问此时Nginx的.log和error.log。一般可以从error.log中找到有效信息。可以获取error关键字,然后用搜索引擎分析解决我刚刚失败的配置。有一次,Nginx配置好证书后重启,输入url访问没有反应,再看error.log,2020/05/1003:11:39[emerg]1#1:cannotloadcertificate"/ssl/xxx.key":PEM_read_bio_X509_AUX()failed(SSL:error:0909006C:PEMroutines:get_name:nostartline:Expecting:TRUSTEDCERTIFICATE)用关键词搜索,随便点进一篇文章,突然关注,我的证书配置错了,哈哈,马上纠正尴尬,重启,验证有效,OK!
