http升级到https需要在nginx的配置中加入证书信息,查询资料后确定生成证书两种方案
 

第一种:自签名证书,然后开启 CloudFlare 的 CDN 服务

 
//确定是否安装openssl
which openssl
//如果没有安装,通过apt-get或者yum等方式安装即可
sudo apt-get install openssl
//生成一个名为“ssl.key”的 RSA key文件:执行结果:生成ssl.pass.key 和 ssl.key
openssl genrsa -des3 -passout pass:x -out ssl.pass.key 2048
openssl rsa -passin pass:x -in ssl.pass.key -out ssl.key
//删除中间文件
rm ssl.pass.key
接着,利用已经生成的 ssl.key 文件,进一步生成 ssl.csr 文件:
openssl req -new -key ssl.key -out ssl.csr
执行此行命令会提示输入密码,按回车即可,因为前面我们在生成 ssl.key 时选择了密码留空。
最后我们利用前面生成的 ssl.key 和 ssl.csr 文件来生成 ssl.crt 文件,也就是自签名的 SSL 证书文件:
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
这一步之后,我们得到一个自签名的 SSL 证书文件 ssl.crt,有效期为 365 天。此时,ssl.csr 文件也已经不再被需要,可以删除掉了:
rm ssl.csr
 
参考地址:
https://hinine.com/create-and-deploy-a-self-signed-ssl-certificate-to-nginx/
 

第二种:借助于Let's Encrypt

 
Let's Encrypt 简介
如果要启用HTTPS,我们就需要从证书授权机构(以下简称CA) 处获取一个证书,Let's Encrypt 就是一个 CA。我们可以从 Let's Encrypt 获得网站域名的免费的证书。
Certbot 简介
Certbot 是Let's Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let's Encrypt 证书。
 
1. 下载 certbot
最好是根据官方网址来处理:
https://certbot.eff.org/
 
2. 生成免费证书
官方文档有比较详细的说明,根据自己的情况来选择
https://certbot.eff.org/docs/using.html
 
注意:官方限制了每周的申请次数,如果你进行开发测试,生成证书的时候加上 --staging参数,这样就不必太担心数量的限制了
 
下面介绍几种方法
无论哪一种方法,实质都是验证你是不是拥有这个域名,只不过实现的途径不同
 
1>webroot方法,此方法会在你配置的服务器站点目录下创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,certbot 会通过访问 http://example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器
 
如果你自己没有创建相应的站点也可以自己加入一个比较通用的配置
location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ { return 404; }
 
certbot certonly --webroot -w 网站根目录 -d example.com -w 网站根目录 -d www.example.com
 
2>standalone方法,如果你不想使用你自己的服务器,这个方法是个选择,但是需要注意要关闭相应的端口或者是80或者443(以你自己选择的方式决定)
使用80端口: certbot certonly --standalone --preferred-challenges http -d example.com
使用443端口: certbot certonly --standalone --preferred-challenges tls-sni -d example.com
 
3>manual方法,如果你想在任意的linux主机下生成证书,那么这种方法可能是一个选择,但是要注意的是验证过程中会生成一个字符串,需要你将这个随机的字符串添加到你dns服务器才可以完成验证操作.
certbot certonly --manual --preferred-challenges dns -d archerwong.cn
 
3.删除证书,如果你生成的时候添加了 --stagin参数,下面的命令也要添加
certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem
certbot delete --cert-name example.com
 
4.证书更新
sudo certbot renew --dry-run
 
5.丰富的参数选择
以上的各种命令其实都是可以加入很多参数,最好是查找下官方文档
https://certbot.eff.org/docs/using.html
 
当然官方提供了很多种生成证书的方法,你可以根据你自己的实际情况进行选择
 
证书生成完毕后,我们可以在 /etc/letsencrypt/live/ 目录下看到对应域名的文件夹,里面存放了指向证书的一些快捷方式。
 
生成证书后,配置 Nginx
 
打开 nginx server 配置文件加入如下设置:
server {
  listen 443 ssl on;
  ssl_certificate /etc/letsencrypt/live/网站域名/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/网站域名/privkey.pem;
  ## 其他配置
}
 
强制跳转 https
https 默认是监听 443 端口的,没开启 https 访问的话一般默认是 80 端口。如果你确定网站 80 端口上的站点都支持 https 的话加入下面的配件可以自动重定向到 https
server {
  listen 80;
  server_name your.domain.com;
  return 301 https://$server_name$request_uri;
}
 
参考地址:
https://zhuanlan.zhihu.com/p/21286171
https://zhuanlan.zhihu.com/p/24996258
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/redirect/p/6937437.html

免费生成https证书以及配置相关推荐

  1. 阿里云域名免费申请https证书 宝塔配置ssl

    申请地址 https://yundun.console.aliyun.com/?spm=5176.12818093.0.dcas.488716d058OPqM&p=cas#/overview/ ...

  2. 为网站配置免费的HTTPS证书 1-4

    系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 在前面的一系列文章中,如< ...

  3. 个人购买的域名(需要公网服务器)快速配置免费的HTTPS证书【有手就行】

    文章目录 配置免费的HTTPS证书 0. 开放443端口 1. 进入https://freessl.cn/ 2. 创建证书 3. 配好后,点击验证,生成证书.以及公钥 4. Nginx配置 5. 访问 ...

  4. 在阿里云centos7.4上配置nginx免费的https证书,支持泛解析

    在阿里云centos7.4上配置nginx免费的https证书,支持泛解析 一 原理说明: 使用acme.sh工具来生成证书,但为了方面采用的使用dns添加TXT记录验证方式,跟传统的webroot有 ...

  5. 为网站配置免费的HTTPS证书 4-4

      系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 上一篇:  为网站配置免费 ...

  6. 为网站配置免费的HTTPS证书 2-4

     系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 上一篇:  为网站配置免费的 ...

  7. 为网站配置免费的HTTPS证书 3-4

      系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 上一篇:  为网站配置免费 ...

  8. 如何为WordPress博客网站配置免费域名HTTPS证书

     系列文章 Win系统如何下载安装使用cpolar内网穿透工具? 本地电脑如何搭建web网站,并发布到公网访问?1-2 本地电脑如何搭建web网站,并发布到公网访问?2-2 如何搭建WordPress ...

  9. 控制台的左侧显示证书树形列表_一款免费签发Https证书的工具:Let's Encrypt

    前言 众所周知,因特网上应用最为广泛的网络传输协议是Http协议,但由于Http协议存在一些不足,比如,在通信过程中使用明文传输,同时未验证通讯双方身份信息,会导致传输数据被第三方窃取. 因此,为了提 ...

最新文章

  1. CVE-2017-5521: Bypassing Authentication on NETGEAR Routers(Netgear认证绕过漏洞)
  2. Spring与其他Web框架集成
  3. Python爬虫开发:requests库的使用--https协议的问题解决
  4. OpenCV语义细分深度学习网络的实例(附完整代码)
  5. openhub_OpenHub框架–下一个有趣的功能
  6. mysql第七章课后答案_mysql核心内幕第七章-查询解析与优化器
  7. Dart基础-控制流程与异常处理
  8. windows server 2012r2 快速启动模式部署remoteapp,检查兼容性,显示有挂起的重新启动...
  9. c语言运算优先级口诀简单,C语言运算符优先级和口诀
  10. DedeCMS总是提示验证码不正确的解决方法
  11. Redis【有与无】【Lettuce】L4.Redis Sentinel
  12. 第三十二章 三更雪压飞狐城(二之全)
  13. cubase外放有声音耳机没声音_为何CUBASE耳机内没有声音
  14. 调试经验——让Oracle的中文提示修改为英文提示
  15. ubuntu pstack报错:Input/output error
  16. 云计算基础——云计算认知
  17. 学习PLC的重要知识点,你知道哪些?
  18. JavaScript踩坑(5)比值函数 function(a, b)
  19. 一周刷爆LeetCode,算法大神左神(左程云)
  20. 硬核!终于有人把CRC讲清楚了!

热门文章

  1. struct作为map的key时,需要重载该结构体
  2. HDC,CDC,CClientDC,CPaintDC,CWindowDC的区别
  3. [react] 请说说什么是useRef?
  4. 前端学习(3252):react脚手架
  5. [html] 在两个iframe之间传递参数的方法有哪些?
  6. [vue] 怎么配置使vue2.0+支持TypeScript写法?
  7. [vue] 为什么我们写组件的时候可以写在.vue里呢?可以是别的文件名后缀吗?
  8. 工作244:根据页面的内容调用
  9. 前端学习(1806):前端调试之列表伪类练习二
  10. plsql轻量版记录类型2