免费生成https证书以及配置

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

时间: 2024-10-25 14:16:26

免费生成https证书以及配置的相关文章

制作免费的https证书

一. 制作免费证书的两种方式: 1. Let's Encrypt命令 2. https://freessl.cn/ 二. 制作免费证书 1. 打开制作证书网址:https://freessl.cn/ 2.输入自己的邮箱,点击“点击创建” 3. 调用本地安装的KeyManager来生成csr等创建证书需要的资料 4. 验证公网域名解析 4.1.配置公网dns域名解析 4.2 检测域名解析结果 5. 点击“保存到KeyManager”,则会自动保存到本地的KeyManager中 三.导出证书 1.

ubuntu 生成https证书 for let's encrypt

1.安装certbot(用于自动续约证书) # 添加安装源 sudo add-apt-repository ppa:certbot/certbot # 更新apt安装源 sudo apt-get update # 安装 sudo apt-get install python-certbot-apache 2.安装letsencrypt并生成证书 # 安装 letsencrypt sudo apt-get install letsencrypt # 生成证书 # letsencrypt certo

https证书怎么配置?怎么进行https认证 ?

随着社会科技的发展,网络科技越来越强大几乎现在生活中都离不开网络,很多网站为了自己网站的安全性,都会选择配置一个https证书,那么https证书怎么配置呢.其实网站要配置https的话,是需要进行https认证的,那么https认证要怎么进行呢,怎么进行https证书申请呢,下面就有SSL盾小编带大家来一起看看吧. 其实要进行https证书申请的话,那么首先是要找一个HTTPSG颁发,SSL盾 CA机构,才可以进行申请.而https认证的第一步一般是用户进行https证书申请的第一步就是要生成

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

作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安全攻击.你可以使用 Google 浏览器打开一个 HTTP 协议网站,会发现 Chrome 在网址的左边将这个网站标记为不安全. HTTPS 为 HTTP 报文提供了一个加密传输的通道,这样攻击者就无法窃听或者篡改传输的内容.要启用 HTTPS,必须向一个可信任机构申请一个 HTTPS 证书.专业的

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

Apache的编译安装见这篇: http://www.cnblogs.com/yjken/p/3921840.html 网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就没有去生成证书,而是直接去了startssl 申请了一个免费的证书,据说startssl也是全球唯一的一个可以申请免费ssl证书的地方,并且是被主流浏览器(firefox,chrome,IE,safari)认可的,所以,对于安全性要求不高的情景,免费的证书已经完全满足需求了,当然,如果你的安全性要求

jdk生成https证书

最近由于客户现场做"等保",其中有一条要求我们必须使用https进行web端的请求,之前我们一直沿用的是默认的http请求,用户说不安全,唉~~局域网,一直强调安全,安全,话不多说了 我采用的使用JAVA自带的keytool生成证书,但是该方法生成的证书不是有效证书,不被浏览器信任,如果是被信任的站点,浏览器左侧会有个绿色的图标,但是这种方法简单,本地就可以轻松测试. 要想使用https,首先,我们需要有SSL证书,证书可以通过两个渠道获得: 公开可信认证机构例如CA,但是申请一般是收

openssl生成https证书、转换证书格式的各种相关操作

第一步:生成 private key.csr等文件 我们可能需要输入以下信息(交互式): --- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:Brooklyn Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Bro

Loadrunner中对https证书的配置

1.先访问要压测的网站地址,从浏览器中将证书导出,或者直接找开发人员要这个证书: 一般证书是cer格式: 2.因为loadrunner只支持pem格式的证书,所以要将证书转换格式: 这里就需要用到openssl工具,进入cmd命令窗口,进入openssl的安装目录,输入命令将证书转换为pem格  式,详情请参考上面两篇博文: 转换方法如下: a)        安装openssl后 b)        运行C:\<OpenSSL>/bin文件夹的openssl二进制文件,它将启动OpenSSL

openssl生成https证书 (转)

1.首先要生成服务器端的私钥(key文件):openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件去除key文件口令的命令:openssl rsa -in server.key -out server.key 2.openssl req -new -key server.key -out server.csr -config openssl.cfg生成Certificate Signing Request(CSR),生成的