前端时间分享了一篇搭建完https网站无法访问的文章,这里再记录下如何搭建从0开始给网站搭建https服务的过程,以阿里云+Nginx为例,其他云厂商和服务器类似,大家参照即可
什么是HTTPS
这里站提一份百科的说明:HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
之所以升级主要是因为安全问题,HTTP对于攻击者而言成本太低,其次对于搜索引擎收录判定也很不友好,各大主流浏览器,HTTP的访问都会在左上角提示·不安全·,访问者信任感较低。
废话不多说,接下来切入正题吧
证书申请
1.首先第一步当然是证书的申请,域名通过后,一般就可以去申请证书了,这里以阿里云为例:控制台找到数字证书管理服务,左侧菜单栏:SSL证书,如图:
2.我们这里选择免费证书,每个域名可以创建20个,有效期1年,到期需要重新申请更换
3.点击创建证书,接下来会看到下面列表出现一条申请记录,点击左侧证书申请,填写相关个人及域名绑定信息
4.接下来就是等证书审核了,一般正常半个小时内会审核通过,正常签发
5.点击下载按钮,根据自己的需要下载,这里我们下载Nginx服务
6.接下来就是在自己的Nginx服务器虚拟主机填写证书、秘钥和相关配置信息了
#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
listen 443 ssl;
#填写证书绑定的域名
server_name <yourdomain>;
root html;
index index.html index.htm;
#填写证书文件名称
ssl_certificate cert/<cert-file-name>.pem;
#填写证书私钥文件名称
ssl_certificate_key cert/<cert-file-name>.key;
ssl_session_timeout 5m;
#表示使用的加密套件的类型
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
#Web网站程序存放目录
root html;
index index.html index.htm;
}
}
7.配置完成后,保存,重启Ngnix
nginx -s reload
8.重新打开网站,这时候看到左侧浏览器出现一个小锁,恭喜你,说明配置已经成功了
问题:
有些小伙伴配置成功后无法访问,curl后网站超时或访问不通,这里可以看下服务是否正常支持openssl以及防火墙是否有拦截。