最近在做小程序,调用后台接口需要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. UGUI中显示粒子特效

    今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sorting ...

  2. Git忽略规则.gitignore梳理

    对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...

  3. 四则运算程序(java基于控制台)

    四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...

  4. c语言——第0次作业

    1.你认为大学的学习生活.同学关系.师生应该是怎样?请一个个展开描写 大学生活:大学生活充满着挑战,首先当然必须先掌握自己所学的专业知识,然后就要学会独立,可以处理好人际关系,并且要有更强的自我约束能 ...

  5. HTTP协议中PUT和POST使用区别

          有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源:有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源:还有的观点认为可以用PUT和POST中任何一个来做创 ...

  6. 使用 PHP 来做 Vue.js 的 SSR 服务端渲染

    对于客户端应用来说,服务端渲染是一个热门话题.然而不幸的是,这并不是一件容易的事,尤其是对于不用 Node.js 环境开发的人来说. 我发布了两个库让 PHP 从服务端渲染成为可能.spatie/se ...

  7. Python 迭代器之列表解析与生成器

     [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将A ...

  8. 01-JavaScript之变量

    这个系列的文章主要讲解JavaScript的常见用法,适合于初中级的前端开发人员,也可以对比TypeScript的系列文章来看. 先介绍JavaScript的变量与常见变量的函数,代码如下: //变量 ...

  9. JAVA_SE基础——40.super关键字

    只要this关键字掌握了,super关键字不在话下,因为他们原理都差不多的.. this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针 ...

  10. Python-基础学习-Day1

    1 Python介绍 1.1 Python 是一门什么样的语言? python是一门动态解释性的强类型定义语言. 编译型的特点:可一致性差,运行速度快. 解释型的特点:边执行边解释,速度慢 1.2 P ...