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
 
参考地址:
 

第二种:借助于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
最好是根据官方网址来处理:
 
2. 生成免费证书
官方文档有比较详细的说明,根据自己的情况来选择
 
注意:官方限制了每周的申请次数,如果你进行开发测试,生成证书的时候加上 --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.丰富的参数选择
以上的各种命令其实都是可以加入很多参数,最好是查找下官方文档
 
当然官方提供了很多种生成证书的方法,你可以根据你自己的实际情况进行选择
 
证书生成完毕后,我们可以在 /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证书以及配置的更多相关文章

  1. linux系统下使用nginx反向代理asp.net core,并配置免费的https证书

    反向代理是为动态 Web 应用提供服务的常见设置. 反向代理终止 HTTP 请求,并将其转发到 ASP.NET Core 应用. 1.在asp.net core项目中的Startup的Configur ...

  2. Tomcat9使用免费的Https证书加密网站

    1.概述 Apache Tomcat是一款优秀的Java Web容器,对于各个站长来说,可以很方便的使用Tomcat将自己的网站博客放在公网的服务器上,分享自己的心得以及个人博客. 那么在公网中的访问 ...

  3. 免费申请 HTTPS 证书,开启全站 HTTPS

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安 ...

  4. 阿里云免费申请https证书

    申请地址   https://common-buy.aliyun.com/?spm=a2c4e.11153940.blogcont65199.22.30f968210RsUSx&commodi ...

  5. openssl生成https证书

    openssl生成https证书 分类: 其它2009-09-03 16:20 452人阅读 评论(0) 收藏 举报 includemoduleaccessapachessl服务器 openssl生成 ...

  6. 获取免费的https证书

    可以通过网站获取免费的https证书 首先到https://freessl.org注册一个账号 然后就可以开始创建免费证书了 获取的证书里面通常只有pem后缀文件 nodejs使用的时候需要crt文件 ...

  7. 全部用startssl生成的证书,配置Apache使其支持SSL

    Apache的编译安装见这篇: http://www.cnblogs.com/yjken/p/3921840.html 网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就 ...

  8. 阿里云https证书Apache配置

    最近玩小程序,只支持https协议,于是给网站添加https支持.手上没钱,自己生成的证书不受信任,找到了阿里云的免费证书(PS:证书可以用在其他云主机上,不一定是阿里云的主机).如何购买下载不多说, ...

  9. 使用Let`s encrypt 免费的https 证书

    在iOS上以前暂时屏蔽https使用http的接口,将在未来被苹果拒绝: 之前传苹果会在2017年1月1日强制要求支持https,但是现在苹果又延迟该计划了 https://developer.app ...

随机推荐

  1. weblogic 忘记控制台账号密码 进行重新设置

    第一步:首先要关闭weblogic服务. 第二步:对一些重要的文件进行备份: 1. 为了保证操作安全,备份%DOMAIN_HOME%/security/DefaultAuthenticatorInit ...

  2. jeesite应用实战(数据增删改查),认真读完后10分钟就能开发一个模块

    jeesite配置指南(官方文档有坑,我把坑填了!)这篇文章里,我主要把jeesite官方给出的帮助文档的坑填了,按照里面的方法可以搭建起来jeesite的站点.系统可以运行以后,就可以进入开发模块了 ...

  3. koa2实现文件上传服务

    使用方法 方法一: 使用中间介 koa-body 方法二: 自己写个借口去接收数据流并保存 方法三: 使用 koa-body 接受文件,自己写个接口做文件保存或处理等操作 这里简单记录方法三 app. ...

  4. 进程peb结构、获得peb的方法

    PEB :进程环境块TEB.ProcessEnvironmentBlock成员就是PEB的结构体地址TEB结构体位于FS段选择符所指的段内存的起始地址处,且ProcessEnvironmentBloc ...

  5. bzoj3312: [Usaco2013 Nov]No Change

    题意: K个硬币,要买N个物品.K<=16,N<=1e5 给定买的顺序,即按顺序必须是一路买过去,当选定买的东西物品序列后,付出钱后,货主是不会找零钱的.现希望买完所需要的东西后,留下的钱 ...

  6. js 封装父页面子页面交互接口

    定义标准接口 Interface= {}; Interface.ParentWin = {}; Interface.ChildWin = {}; /** * 父页面提供的标准接口函数名称 */ Int ...

  7. Matlab将多幅图片保存为mat

    %% 储存某目录所有的图片 pt = 'd:\imgs\'; ext = '*.jpg'; dis = dir([pt ext]); nms = {dis.name}; for k = 1:lengt ...

  8. flush caches

  9. Java设计模式学习——设计原则

    第一章 设计原则 1.开闭原则 一个软件实体,像类,模块,函数应该对扩展开放,对修改关闭 在设计的时候,要时刻考虑,让这个类尽量的好,写好了就不要去修改.如果有新的需求来,在增加一个类就完事了,原来的 ...

  10. 【Java】基本数据类型以及其转换

    整理了一下Java基本数据类型和面试可能涉及的知识.      字节数(byte)  位数(bit)  取值范围 整型  byte  1  8  -2^7 ~ 2^7 -1 short   2  16 ...