最近在做小程序,调用后台接口需要https协议请求,小程序之所以这么要求,也是因为http协议是明文传播文件数据的,出于数据安全考虑,必须使用https协议。

http想实现为https 就需要为配置ssl,及其使用的证书。这些在http里有专门的mod_ssl模块来支持。

yum -y install mod_ssl  #安装mod_ssl模块

 安装该模块后,它会自动修改配置文件,增加LoadModule ssl_module modules/mod_ssl.so在httpd的子配置文件/etc/httpd/conf.d/ssl.conf里,同时也打开了443端口,同时指定了证书的存放路径。原因是安装的时候,安装包里会有脚本去生成私钥文件/etc/pki/tls/private/localhost.key,同时也生成证书文件/etc/pki/tls/certs/localhost.crt,而这个证书文件是自签名的,此时https网站已经可以访问,但是由于这个https服务器的证书有问题,颁发给的机构不对,不是对应的站点名称。所以需要要重新向CA申请,在获取CA颁发的证书后才能正确使用https站点。(参考:https://www.cnblogs.com/54db/p/7635254.html)(了解CA机构:https://zhidao.baidu.com/question/753682127954233484.html)

既然默认的证书不能使用,那就得自己生成了,这里网上有很多资料,可以参考微信公众平台的开发文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=10_4;文档中的操作步骤很详细,但是最关键的一步:3、将生成的csr文件提交给第三方证书颁发机构申请对应域名的服务器证书,同时将私钥文件保存好,以免丢失。我做到这,就顺便了解了,CA机构还不少,这一步具体怎么操作,就不太清楚了,所以在这个时候就去查有哪些机构,想了解的可以参考知乎上的这个链接:https://www.zhihu.com/question/19578422;了解之后,觉得Let's Encrypt这一家还可以,主要是支持免费,所以就尝试了。

注:下文中域名:test.example.com不代表真实域名,读者改成自己的域名即可。(参考:https://www.cnblogs.com/mawang/p/6758728.html)

环境说明:

centos 7
nginx 1.12

前期准备

软件安装

yum install -y epel-release
yum install -y certbot

创建目录及链接

方法1:在网站根目录下创建一个.well-known的目录
方法2:
mkdir -p /usr/share/nginx/html/.well-known 配置nginx
    server {
        listen       80 default_server;       
        server_name test.example.com;
       index index.html index.htm index.php;
        
root  /usr/share/nginx/html;         include /etc/nginx/default.d/*.conf;
        location / {
        }         error_page 404 /404.html;
            location = /40x.html {
        }         error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

命令执行生成证书

certbot certonly --webroot -w /usr/share/nginx/html -d test.example.com

根据提示进行操作,一般可以正常生产证书文件。
证书文件的目录存放在: '/etc/letsencrypt/live/test.example.com/'
会有4个文件:
cert.pem
chain.pem
fullchain.pem
privkey.pem

nginx配置443端口

server {
listen 443 ssl http2;
server_name test.example.com;
index index.html index.htm index.php;
root /usr/share/nginx/html; ssl_certificate /etc/letsencrypt/live/test.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.example.com/privkey.pem; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m; access_log off;
}

定期更新


crontab -e # 新增如下定时任务
10 6 * * * /bin/certbot renew --quiet &>/dev/null Let's Encrypt 的证书有效期为90天,如果证书的有效期大于30天,则上面命令不会真的去更新证书的。

https测试

在浏览器输入 https://example.com 网址进行验证

生成和配置https证书的更多相关文章

  1. 【转载】网站配置Https证书系列(二):IIS服务器给网站配置Https证书

    针对网站的Https证书,即SSL证书,腾讯云.阿里云都提供了免费的SSL证书申请,SSL证书申请下来后,就需要将SSL证书配置到网站中,如果网站使用的Web服务器是IIS服务器,则需要在IIS服务器 ...

  2. 【转载】网站配置Https证书系列(三):IIS网站设置Http链接直接跳转Https安全连接

    Http链接请求是以明文的方式传输,在传输的过程中很容易被篡改数据,一个典型的例子就是运营商的网络劫持注入广告信息等,而Https请求则是安全加密的请求,报文数据以密文的形式进行传输.当IIS网站配置 ...

  3. Nginx配置HTTPS证书网站

    前提: 1.主机需要先安装openssl     2.编译安装nginx时,要加上--with-http_ssl_module  这个ssl模块 现在开始配置:(我当时配置时,主机已安装了openss ...

  4. 如何解决IIS配置HTTPS证书后刷新消失问题

    IIS配置CER证书后完成证书申请后刷新后就会消失的这个BUG微软一直存在,因为我们一般申请都是下来的CER文件和私钥 但是IIS只支持PFX文件的导入,所以我们需要把CER文件和证书私钥转换成PFX ...

  5. Nginx下配置Https证书详细过程

    一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...

  6. Nginx配置https证书

    目前的大趋势是升级HTTP为HTTPS 本章介绍怎样实装HTTPS证书 # 如果报 ssl 错误是Nginx安装时未安装ssl 请重新编译nginx 可以参考我之前的博客 申请/获取https 这里就 ...

  7. 何给域名配置https证书

    原文链接:https://www.cnblogs.com/ymwang/p/6893105.html http和https的区别就是,后者在网络传输过程中会很安全,原因就是给http安装了SSL证书. ...

  8. 如何给域名配置https证书

    http和https的区别就是,后者在网络传输过程中会很安全,原因就是给http安装了SSL证书. SSL证书有免费的和收费的,收费的顾名思义就是保护的方面更多,更安全.收费的像单域名的一年有几百.几 ...

  9. weblogic生成和配置SSL证书

    采用Linux自带的OPENSSL进行证书的生成工作 准备阶段 以root登录,同时在el01gbcn01上完成 [oracle@el01gbcn01]# which java /u01/FMW/we ...

随机推荐

  1. 网络1711-1712的C语言作业总结(2017-2018第一学期)

    1.第0次作业总结--预备作业 作业地址 1711班级总结 1712班级总结 2.第一次作业总结--顺序结构 作业地址 1711班级总结 1712班级总结 3.第二次作业总结--分支结构 作业地址 1 ...

  2. 105&250-高级软件工程2017第3次作业

    小组成员 2017282110250 王婷婷 2017202110105 张芷祎 github地址 https://github.com/setezzy/Calculator_GUI PSP PSP2 ...

  3. Linux下I/O多路转接之epoll(绝对经典)

    epoll 关于Linux下I/O多路转接之epoll函数,什么返回值,什么参数,我不想再多的解释,您不想移驾,我给你移来: http://blog.csdn.net/colder2008/artic ...

  4. python 二叉堆

    BinaryHeap() 创建一个新的,空的二叉堆. insert(k) 向堆添加一个新项. findMin() 返回具有最小键值的项,并将项留在堆中. delMin() 返回具有最小键值的项,从堆中 ...

  5. Storm概念讲解和工作原理介绍

    Strom的结构 Storm与传统关系型数据库     传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存     传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据   ...

  6. 09-移动端开发教程-Sass入门

    1. 引言 CSS3之前的CSS都大都是枚举属性样式,而编程语言强大的变量.函数.循环.分支等功能基本都不能在CSS中使用,让CSS的编程黯淡无光,Sass就是一种增强CSS编程的扩展语言(CSS4也 ...

  7. Microsoft dynamic sdk中join应该注意的问题.

    QueryExpression queryNextSeq = new QueryExpression { EntityName = "ep_prodoperationsequence&quo ...

  8. python time、datetime、random、os、sys模块

    一.模块1.定义模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)包:用来从逻辑上组织 ...

  9. 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...

  10. webpack你值得拥有-从四个核心配置谈起

    很久没有发文章了,但是强调一点,大-熊同学最近可没闲着.学习算法,复习计算机网络,也顺便学习了一下webpack,看了看操作系统(没办法,都没学,要是不学连实习笔试都过不了,伤心--).本来比较纠结是 ...