用 OpenSSL 创建可以用于 https 的证书

开会时 说到了安全问题 就简单鼓捣了一下 以后还是用nginx 转发比较好一些. 

https://blog.csdn.net/joyous/article/details/80659925

我这边用的 arm的机器进行测试验证的 没有什么问题. 

个人制作的证书也就玩玩而已,浏览器是不认的,会一直有红色的安全警告,不过仅实现加密连接倒是没问题。

而阿里云和腾讯云都有1年期免费的单域名证书,可正常使用,浏览器不会出现红色“不安全”警告,而是显示绿色的“安全”提示。

以下是自助生成证书的过程。

OpenSSL 下载

http://www.slproweb.com/products/Win32OpenSSL.html
这里下载 openssl win64 版本,并安装。

OpenSSL 设置环境

设置系统环境变量
set OPENSSL_CONF=C:/OpenSSL-Win64/bin/openssl.cfg
set path=C:\OpenSSL-Win64\bin;%path%;

首次使用时,创建目录 "newcerts"
C:\OpenSSL-Win32\bin\PEM\demoCA\newcerts

创建一个空文件 "serial" (没有扩展名)
C:\OpenSSL-Win32\bin\PEM\demoCA\serial

制作CA证书

进入目录 C:\OpenSSL-Win64\bin\PEM

生成 ca.key CA 私钥
openssl genrsa -out ca.key 4096

制作解密后的 CA 私钥(一般无此必要)
openssl rsa -in ca.key -out ca_decrypted.key

生成 ca.crt CA 根证书(公钥):
openssl req -new -x509 -days 7304 -key ca.key -out ca.crt

制作生成网站的证书并用CA 签名认证
如果CA证书已经存在或者想沿用,则可以直接从这一步开始。

生成证书私钥:
openssl genrsa -out server.pem 4096

制作解密后的证书私钥:
openssl rsa -in server.pem -out server.key

生成签名请求:
openssl req -new -key server.pem -out server.csr

在 common name 中填入网站域名,如 blog.creke.net 即可生成该站点的证书,同时也可以使用泛域名如 *.creke.net 来生成所有二级域名可用的网站证书。
用CA 进行签名:

openssl ca -policy policy_anything -days 3652 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt

制作过程

Nginx 配置

以下是 Nginx 启用的部分配置,需要设置 ssl_certificate 和 ssl_certificate_key 指定证书和公钥,并且 listen 443,然后重新启动 Nginx,浏览器就可以用的 https://yourhost 的方式网页了。

转载自:
http://blog.creke.net/762.html

相关文章

http://www.cnblogs.com/gsls200808/p/4502044.html

[转帖]用 OpenSSL 创建可以用于 https 的证书的更多相关文章

  1. 使用 OpenSSL 创建私有 CA:1 根证书

    OpenSSL 创建私有 CA 三部曲:使用 OpenSSL 创建私有 CA:1 根证书使用 OpenSSL 创建私有 CA:2 中间证书使用 OpenSSL 创建私有 CA:3 用户证书 OpenS ...

  2. 利用OpenSSL创建证书链并应用于IIS7

    一.系统环境说明 Linux & OpenSSL Linux localhost -.el5 # SMP Tue Mar :: EDT x86_64 x86_64 x86_64 GNU/Lin ...

  3. 使用OpenSSL自建一个HTTPS服务

    1. 理论知识 1.1 什么是https 传统的 HTTP 协议以明文方式进行通信,不提供任何方式的数据加密,很容易被中间攻击者破解通信内容或者伪装成服务器与客户端通信,在安全性上存在很大问题. HT ...

  4. 使用openssl创建自签名证书及部署到IIS教程

    概要 本文讲解三个部分:1. 创建自签名证书2. 创建自己的证书颁发机构3. 以及如何配置IIS 创建自签名证书 首先,创建一个私钥文件: openssl genrsa -out myselfsign ...

  5. IIS8中使用OpenSSL来创建CA并且签发SSL证书

    前言 [转载]http://alvinhu.com/blog/2013/06/12/creating-a-certificate-authority-and-signing-the-ssl-certi ...

  6. 使用 OpenSSL 创建私有 CA:3 用户证书

    OpenSSL 创建私有 CA 三部曲:使用 OpenSSL 创建私有 CA:1 根证书使用 OpenSSL 创建私有 CA:2 中间证书使用 OpenSSL 创建私有 CA:3 用户证书 在前文&l ...

  7. 使用 OpenSSL 创建私有 CA:2 中间证书

    OpenSSL 创建私有 CA 三部曲:使用 OpenSSL 创建私有 CA:1 根证书使用 OpenSSL 创建私有 CA:2 中间证书使用 OpenSSL 创建私有 CA:3 用户证书 本文将在前 ...

  8. Confluence 6 通过 SSL 或 HTTPS 运行 - 创建或请求一个 SSL 证书

    在启用 HTTPS 之前,你需要一个有效的证书,如果你已经有了一个有效的证书,你可以直接跳过这个步骤,进入 step 2. 你可以创建一个自签名的证书,或者从信任的 Certificate Autho ...

  9. https学习笔记三----OpenSSL生成root CA及签发证书

    在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root C ...

随机推荐

  1. 小米oj 组长偏头痛(二分)

     组长偏头痛 序号:#28难度:非常难时间限制:1000ms内存限制:10M 描述 临近年底,组长突然患上了偏头痛的毛病,因为他最近从产品经理那里收到了好多需求,需要按排组员尽快完成. 现在用一个数组 ...

  2. 【CUDA 基础】6.5 流回调

    title: [CUDA 基础]6.5 流回调 categories: - CUDA - Freshman tags: - 流回调 toc: true date: 2018-06-20 21:56:1 ...

  3. element-ui练习使用总结

    <el-row> <el-col class="borderRed" :span="24"> <div class="g ...

  4. luogu4930

    P4930 「FJ2014集训」采药人的路径 题目描述 采药人的药田是一个树状结构,每条路径上都种植着同种药材.采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳 ...

  5. 集合家族——LinkedList

    一.概述: LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现 ...

  6. MySQL安装及基础命令

    介绍数据库安装基础命令 linux的下载和安装 mac的下载和安装 windows的下载和安装 介绍: 数据库在开发中占据的位置? 数据库能更简单的使用存储在文件中的数据能更好的解决并发问题,数据统一 ...

  7. ie浏览器中时间转换

    var begintime = $("#start").val(); var lastLoginTimeStart =new Date(begintime).getTime();/ ...

  8. 记一次phoenix在不加索引的情况调优,由6s以上时间变成不到1s

    背景: 网约车预约单查询: 这里面恶心的地方是: 1个时间窗口要查询6种时间:推送订单时间(来自mongodb).有效抢单时间(来自mongodb).抢单成功时间(实时kafka).取消订单时间(实时 ...

  9. markdown简单的使用方法

    转自 https://www.cnblogs.com/math/p/se-tools-001.html 作者:正交分解 1.如何切换编辑器 切换博客园编辑器为MarkDown:MarkDown Edi ...

  10. HearthBuddy BotManager

    MainWindow private void button_0_Click(object sender, RoutedEventArgs e) { Configuration.Instance.Sa ...