云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

不要再羡慕别人,你也可以免费拥有HTTPS网站

jxf315 2025-02-21 13:47:48 教程文章 17 ℃

首先说下http和https的区别:

1、https协议需要ca证书,一般免费证书较少,因而需要一定费用。


2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。


3、http和https使用的是完全不同的连接方式,用的端口也不一样,http是80端口,而https是443端口。


4、http的连接很简单,是无状态的;而https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

开始操练起来:

  • 1、申请https证书:
  • https证书有收费的也有免费的,如果是企业使用,建议到正规厂商申请https证书,毕竟正规的证书更加安全稳定并有更好的服务保障,而针对个人开发,免费的https证书可以满足使用。目前很多云服务厂商都支持申请免费的https证书,在这里我们使用腾讯云的证书。

    进入到腾讯云的证书选购页面(
    https://cloud.tencent.com/product/ssl/ssl-types
    ):

    点击【立即选购】,进入到选购页面:

    选择【域名型免费版(DV)】,然后点击【快速免费申请】,进入到证书申请页面:

    在【通用名称】输入完整的想要申请https域名的地址,如:api.**.**.com,点击【下一步】进入域名身份验证页面:

    保留默认选择【手动DNS验证】,点击【确认申请】:

    此时说明域名证书申请成功,点击【查看证书详情】,进入详情页面:

    此时,我们距离证书申请成功还差最后一步,就是进行域名的解析,在域名解析中添加一条记录:

    域名解析中的信息要根据证书申请中的信息来填写,点击【确定】,此时回到腾讯云证书申请页面,进行域名解析结果的诊断:

    此时说明域名解析正确,此时我们稍等几分钟,证书就会申请下来:

    • 2、站点部署

    我们把证书下载下来,解压后发现证书针对各种环境的部署方式都有支持:


    在云服务器中,我们对外开放的web访问端口默认有80和443,其中80端口针对http协议,而443端口针对https协议。一般一台服务器上会同时部署多个站点,那就涉及到共用一个端口的问题,这时候我们就会用到Nginx,让80或者443端口指定Nginx,由Nginx反向代理到具体端口的服务上,具体安装Nginx可参考【云服务器Linux安装Nginx】。

    安装完Nginx后,我们需要编辑Nginx的配置,使得Nginx支持https访问并能反向代理,编辑nginx的编辑文件:

    vi /usr/local/nginx/conf/nginx.conf

    添加一个server配置:

     server {
            listen 443 ssl;
            server_name api.**.**.com;  # 申请证书的完整域名
            ssl_certificate ****.crt;   # crt 文件绝对路径
            ssl_certificate_key ****.key;  # key文件绝对路径
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
    
            location /api/ {
                proxy_pass http://localhost:8899;   # 接口本地端口
            }
        }

    修改完nginx配置,需要重启下才可以生效:

    /usr/local/nginx/sbin/nginx -s reload

    操作完如上这些步骤,我们的接口站点就可以使用https访问了:

    如果走到这步,那么恭喜你,你已经拥有一个https的站点了!这样你就可以开发微信小程序等等无压力了。

    感谢您的阅读,如有任何问题,可以关注我并私信。

    最近发表
    标签列表