前言

之前写自己的网站时, 申请过免费的https证书. 最近想在自己本地搭一个, 结果忘了当初证书是怎么来的了. 本来想着去申请个免费的证书, 但想了想, 我只需要在自己本地能使用就行了, 我自己的环境, 那当然是我说了算了. 只要能够将证书构造出来, 安装到本地就可以识别了. 搜了搜, 发现还真的有生成证书的工具. 道理咱都懂, 动手才是王道, 走你.

证书生成

以下以我自己的域名hujingnb.cn为例.

随便找个路径, 创建 hujingnb.conf配置文件, 内容如下(内容加了注释, 请自行将注释删掉):

[ req ]default_bits = 2048
default_keyfile = server-key.pem
// 标识提示的标签名, 就是下面的 [subject]
distinguished_name = subject
// 指定扩展的标签名
req_extensions = req_ext
x509_extensions = x509_ext
// 指定编码
string_mask = utf8only[ subject ]
// 以下为填写的相关信息
countryName = 国家(跳过即可)
countryName_default = CHstateOrProvinceName = 省份(跳过即可)
stateOrProvinceName_default = BeiJinglocalityName = 城市(跳过即可)
localityName_default = BeiJingorganizationName = 组织(跳过即可)
organizationName_default = NonecommonName = 域名(必填)
commonName_default = hujingnb.cnemailAddress = 邮箱(跳过即可)
emailAddress_default = hujingnb@qq.com[ x509_ext ]// 使用者密钥标识
subjectKeyIdentifier = hash
// 授权密钥标识
authorityKeyIdentifier = keyid,issuer// 表示要生成的证书是用于终端证书的, TRUE 为 CA 证书, 可下发二级证书
basicConstraints = CA:FALSE
// 指明证书用途
keyUsage = digitalSignature, keyEncipherment
// 标明当前证书使用与哪些域名, 在下面的 alternate_names 标签中
subjectAltName = @alternate_names
// 证书提交说明
nsComment = "generate crt"[ req_ext ]subjectKeyIdentifier = hashbasicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "generate crt"[ alternate_names ]
// 证书可使用的域名列表
DNS.1 = hujingnb.cn
DNS.2 = *.hujingnb.cn// 还有写其他的参数, 可查看 openssl.cnf 配置文件

然后执行命令:

openssl req -config hujingnb.conf -new -sha256 -newkey rsa:2048 -nodes -keyout hujingnb.key -x509 -days 365 -out hujingnb.crt

提示需要输入一堆参数, 都可以不给. 但是, Common Name 需要指定域名

对以上用到的参数简单解释:

  • config: 指明配置文件
  • new: 指明生成新的证书
  • newkey: 生成新的密钥, 方式为 rsa. 长度为2048
  • nodes: 指定密钥不用加密(没懂是什么意思, 但是不指定不能生成证书).
  • keyout: 私钥输出文件
  • days: 标明证书有效期
  • X509: 表示输出证书的格式, 这个我们在配置文件中配过了. (默认是 crt 格式, 我试了, 不加这个参数也 OK)
  • out: 证书输出文件

生成证书文件以及私钥.

然后将证书以及私钥 copy 到你想要的任意位置,

证书安装

双击crt证书文件.

双击证书, 将证书设置为始终信任. 然后 X 调, 输入密码, 确认修改. 证书安装完成.

修改 nginx 配置

OK, 证书的准备工作已经完成了, 现在剩下 nginx 的配置了. 将以下配置加到 nginx 配置文件中:

listen 443 ssl;
server_name  hujingnb.cn;ssl on;
ssl_certificate     /Users/hujing/dir/pem/hujingnb.crt;
ssl_certificate_key /Users/hujing/dir/pem/hujingnb.key;

请自行修改其中证书以及私钥的文件位置.

万事具备, 试验:

OK, 完美.

总结

不过这样安装, 只能在本地环境访问, 仅供测试使用.

对于在本地环境搭建HTTPS的开发来说, 不用费时费力的申请线上证书, 可模拟线上HTTPS请求. 足矣.

搭建本地 HTTPS 环境相关推荐

  1. 使用WampServer搭建本地PHP环境,绑定域名,配置伪静态

    倡萌之前介绍过 USBWebserver 快速搭建本地PHP环境 ,推荐USBWebserver的原因在于它是绿色的,不需要安装,想使用就手动运行下即可.但是 USBWebserver 也有自身的弱点 ...

  2. 微信公众号开发笔记(四)搭建本地测试环境

    上一章给大家分享的是开发微信公众号(三) , 今天继续更新第四篇 搭建本地测试环境. 推荐一款软件: Ngrok(内网穿透工具) Ngrok可以实现内网穿透,也就是说我们可以将内网的服务器映射到外网给 ...

  3. 使用Windows7旗舰版64位来搭建本地HTTPS测试的ASP服务器

    背景 近期写的一个小程序里面,需要用到HTTPS协议来传输数据到指定的HTTPS服务器上面.上传数据的客户端使用WININET库开发完成,但是需要搭建本地测试环境,来测试程序能够成功发送数据到HTTP ...

  4. Windows下使用IDEA+Maven搭建本地Hadoop环境

    IDEA结合Maven搭建本地MapReduce环境 文章目录 IDEA结合Maven搭建本地MapReduce环境 前言 环境 配置Maven 新建项目 初始化 添加apache源 添加Hadoop ...

  5. phpnow mysql_使用PHPnow搭建本地PHP环境+创建MySQL数据库 | 倡萌的自留地

    要想学习WordPress建站,在本地搭建PHP环境是十分必要的,在以后的建站日子里,你可以使用这个环境来进行wordpress的程序学习.调试等工作,等你熟悉了wordpress以后,再购买域名和空 ...

  6. phpnow mysql字符集_使用PHPnow搭建本地PHP环境+创建MySQL数据库

    要想学习WordPress建站,在本地搭建PHP环境是十分必要的,在以后的建站日子里,你可以使用这个环境来进行wordpress的程序学习.调试等工作,等你熟悉了wordpress以后,再购买域名和空 ...

  7. phpnow mysql密码_使用PHPnow搭建本地PHP环境+创建MySQL数据库

    要想学习WordPress建站,在本地搭建PHP环境是十分必要的,在以后的建站日子里,你可以使用这个环境来进行wordpress的程序学习.调试等工作,等你熟悉了wordpress以后,再购买域名和空 ...

  8. 搭建自有HTTPS环境

    搭建自有HTTPS环境 搭建自有HTTPS环境 服务器配置https协议,三种免费的方法: 1.Linux自签(OPENSSL生成SSL自签证书) 2.阿里云免费证书 3.Let's Encrypt永 ...

  9. 使用 Docker 搭建本地开发环境!真心强啊

    关注公众号,回复"1024"获取2TB学习资源! 本地开发之痛苦 在开发之前,首先你需要安装各种开发工具和服务支持到你的开发环境当中,可能会出依赖问题,环境变量问题,端口冲突,经编 ...

最新文章

  1. 清华北大留不住,高中毕业去美国读AI本科值不值?
  2. 使用Windows8开发Metro风格应用五
  3. 程序员是否可以作为终身从事的职业,以及程序员该何时考虑转岗
  4. 深度残差收缩网络:(一)背景知识
  5. 解决listview与scroll冲突,自定义listview高度
  6. Java的互斥同步机制
  7. cross_val_score 如何对孤立森林_泸县九中开展 “森林草原防灭火”主题班会活动...
  8. win7 64位MMC管理控制台使用“远程桌面”
  9. 用python定时自动发微博_Python 教你自动发微博,每日一句英语
  10. linux服务器安装网卡驱动,Linux下如何安装网卡驱动
  11. TryHackMe - Thompson靶场
  12. 银河麒麟(linux)wireshark 打开抓包报错 The capture session could not be initiated on interface ‘enp2s0‘(You...
  13. 获取安卓模拟器的型号(品牌)
  14. 织梦有哪些文件需要设置robot的Disallow呢?
  15. Workbench二次开发技术分享
  16. 负载均衡服务器性能评估,性能测试:pgpool做负载均衡的性能评估
  17. 49.现有移动端开源框架及其特点—MACE( Mobile AI Compute Engine)
  18. tar 解压出指定文件
  19. html5 plus 支付,h5+ app 第三方支付调用步骤
  20. c#ATM之功能篇(存钱,取钱,转账,交易明细)完结篇

热门文章

  1. STM32F0使用LL库实现DMA方式AD采集
  2. 模拟网页行为之实践四
  3. 获取iOS任意线程调用堆栈(五)完整实现:BSBacktraceLogger
  4. 前端设置画布的高度_【后期修图】ps画布设置详解
  5. Android studio的Activity详解
  6. 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
  7. php连接mysql的方式_php有几种连接mysql的方法
  8. 大家对Java的一些误解
  9. cd短是什么意思_每日命令|pwd、cd
  10. shell把mysql每句导出_shell实现,将mysql每个存储过程导出为单个文件_MySQL