Openssl配置CA证书及https访问

2023-05-16

一、创建根秘钥对

1.创建目录


cd
mkdir /root/ca
cd /root/ca
mkdir certs crl newcerts private
chmod 700 private
touch index.txt
echo 1000 > serial
touch openssl.cnf

2.编辑openssl配置文件openssl.cnf,将链接中的内容复制到openssl.cnf中

3.创建根私钥


openssl genrsa -aes256 -out private/ca.key.pem 4096
chmod 400 private/ca.key.pem  

4.生成根证书


cd /root/ca
openssl req -config openssl.cnf -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem
chmod 444 certs/ca.cert.pem  

(可选)验证根证书


openssl x509 -noout -text -in certs/ca.cert.pem  

二、创建中间密钥对

1.创建目录


mkdir /root/ca/intermediate
cd /root/ca/intermediate
mkdir certs crl csr newcerts private
chmod 700 private
touch index.txt
echo 1000 > serial
touch openssl.cnf

2.编辑openssl配置文件openssl.cnf,将链接中的内容复制到openssl.cnf中

3.生成intermediate的秘钥


cd /root/ca
openssl genrsa -aes256 -out intermediate/private/intermediate.key.pem 4096
chmod 400 intermediate/private/intermediate.key.pem  

4.生成证书签名请求(csr)(除common name之外,其他细节与根证书的一致)


openssl req -config intermediate/openssl.cnf -new -sha256 -key intermediate/private/intermediate.key.pem -out intermediate/csr/intermediate.csr.pem  

5.用根私钥签名


cd /root/ca
openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 3650 -notext -md sha256 -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem
chmod 444 intermediate/certs/intermediate.cert.pem  

(可选)验证证书


openssl x509 -noout -text -in intermediate/certs/intermediate.cert.pem
openssl verify
-CAfile certs/ca.cert.pem intermediate/certs/intermediate.cert.pem

6.生成证书链文件


cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem
chmod 444 intermediate/certs/ca-chain.cert.pem  

三、生成服务器秘钥对

1.生成服务器所用的证书及私钥


cd /root/ca
openssl genrsa
-aes256 -out intermediate/private/www.example.com.key.pem 2048
chmod 400 intermediate/private/www.example.com.key.pem

openssl req -config intermediate/openssl.cnf -key intermediate/private/www.example.com.key.pem -new -sha256 -out intermediate/csr/www.example.com.csr.pem
(注意:common name与所要访问域名相同)

openssl ca -config intermediate/openssl.cnf -extensions server_cert -days 375 -notext -md sha256 -in intermediate/csr/www.example.com.csr.pem -out intermediate/certs/www.example.com.cert.pem

chmod 444 intermediate/certs/www.example.com.cert.pem

(可选)验证证书及证书链


openssl x509 -noout -text -in intermediate/certs/www.example.com.cert.pem  

openssl verify -CAfile intermediate/certs/ca-chain.cert.pem intermediate/certs/www.example.com.cert.pem  

这样得到3个用来配置服务器https的文件:


ca-chain.cert.pem
www.example.com.key.pem
www.example.com.cert.pem  

之后配置apache

四、配置apache

1.安装apache (ubuntu16.04)


apt-get update
apt-get install apache2  

2.配置https

打开/etc/apache2/sites-available/目录下的default-ssl.conf


vim /etc/apache2/sites-available/default-ssl.conf  

  将ServerName改为之前服务器证书中所填的common name

  

  将之前得到的三个证书文件复制到/etc/apache2/cert/目录下,并更改ssl配置中相应的内容

  

  启动apache


/etc/init.d/apache2 start  

  

   启动时需要输入证书的密码

五、修改本机hosts文件(若域名无法访问)

windows下hosts文件在C:\Windows\System32\drivers\etc\目录下:

前面为apache服务器ip,后面为生成证书时填的common name。

之后在cmd中刷新dns,命令如下:


ipconfig /flushdns  

之后可ping 域名检查返回ip是否为hosts中所填ip.

六、验证

  在浏览器访问https://域名,查看结果

  

  会有警告,因为根证书不可信,此时,将之前的根证书下载到本地,导入根证书至浏览器的证书颁发机构中。

  

  再次访问,即可成功访问。

转载于:https://www.cnblogs.com/adhzl/p/11577384.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Openssl配置CA证书及https访问 的相关文章

  • 如何从 openssl 生成的密钥生成 X.509 证书

    我有一个在 ec2 实例上运行的 Web 服务器 该实例在内部调用使用 Spring Boot 构建的 REST 服务器 现在 我正在尝试让此 REST 服务器在 SSL 下运行 这是我到目前为止所做的 1 使用此命令创建 CSR 和密钥文
  • 轻量级加密密钥交换协议

    我有一个嵌入式系统通过 HTTP 将数据发布到 JSON REST 服务 我目前正在使用 HMAC SHA1 进行身份验证 方式与亚马逊AWS http docs amazonwebservices com AWSSimpleQueueSe
  • OpenSSL连接错误SSL23_GET_SERVER_HELLO,但浏览器和curl可以工作

    我正在处理一个问题 由于 openssl 无法完成握手 python 无法通过 ssl 连接到特定服务器 Curl 和我的浏览器工作正常 我尝试了几个不同的 openssl 版本解决方案 https stackoverflow com qu
  • 硒 + 火狐 + HTTPS

    好的 我知道我问的是一个老生常谈的问题 但我发布这个问题是因为尽管尝试了各种链接上提供的所有解决方案 但我的问题仍未得到解决 我的限制 我不想使用保存的 Firefox 配置文件来保存网站的证书 Selenium 服务器版本 2 0b3 尝
  • 使用 aes_256_cbc 密码加密时的默认 IV 是多少?

    我在一个文件中生成了一个随机 256 位对称密钥 用于使用 OpenSSL 命令行加密一些数据 稍后我需要使用 OpenSSL 库以编程方式解密该数据 我没有成功 我认为问题可能出在我正在使用 或没有使用 的初始化向量中 我使用以下命令加密
  • Npm 不工作(openSSL 配置错误 windows10x64)

    每当我在 powershell 中尝试 npm 命令时 都会收到此错误 node v v17 1 0 npm v OpenSSL configuration error 74240000 error 80000003 system libr
  • 在 Objective-C 中以编程方式创建 .pem 文件?

    我正在尝试使用 iPhone 应用程序中的 Objective C 和 OpenSSL 库以编程方式从证书签名请求创建 PEM 文件 我按照 Adria Navarro 对这个问题的回答生成了 CSR 类型为 X509 REQ 使用钥匙串存
  • 电子邮件安全:TLS 和 S/MIME

    我的理解是 TLS 是一种加密技术 允许两个 STMP 服务器安全地相互通信 如果使用 HTTPS 连接到 STMP 服务器 与使用 S MIME 相同吗 不会 TLS 会对通信通道进行加密 S MIME 对消息进行加密 也就是说 这就是
  • 为什么 Nginx 以相反的顺序提供客户端 SSL DN?

    我很好奇为什么某些 Web 服务器 例如 Nginx 以相反的顺序提供客户端 SSL DN Web 应用程序将 DN 发布到 Java Web 服务 该服务尝试创建 Javajavax naming ldap LdapName http d
  • openssl-使用密钥和 IV 解密 Base64 字符串

    我正在尝试解密已在 openssl 中使用 aes256 加密的 base64 字符串 我获得了会话密钥和 IV 它们是用我的密钥加密的 我将它们转换为十六进制 以便可以使用以下 openssl 命令 openssl enc d aes25
  • 使用 Ruby OpenSSL 库时公钥无效

    我正在尝试在 Ruby 中生成 RSA 密钥对 主要使用来自这篇博文 http stuff things net 2009 12 11 generating rsa key pairs in ruby 这是我稍微修改过的代码 def gen
  • Lion:RVM 安装 rubies 时出现问题 - 与 openssl 相关的问题

    我很绝望 现在两天 天都在摆弄以下问题 但没有解决方案 更新 Lion 后 我想使用最新版本的 rvm 安装额外的 rubies 这是我之后调用捆绑器时发生的情况 Users felix rvm rubies ruby 1 9 2 p290
  • 如何让wildfly localhost连接自动变成https?

    我需要在本地主机上使用 https 协议测试我的 Web 应用程序 我怎样才能在wildfly上配置设置以使https localhost 8443 myapp html works New 我将其添加到我的安全领域
  • 如何管理错误“OpenSSL v1.1.1 ssl_choose_client_version 不支持的协议”? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 尝试通过以下方式连接到 VPN 时openvpn我收到以下错误openssl Tue Oct 30 11 34 16 2018 WARNI
  • 在 XCode 中静态链接 OpenSSL

    我正在尝试链接libssl a and libcrypto aXCode 命令行项目中的静态库 在 Link Binary With Libraries 下 我已在搜索路径中包含 Openssl 头文件 编译成功但执行失败dyld Libr
  • 如何在 Cocoa Touch 中验证网站证书?

    我目前使用 NSURLConnection 打开到 Web 服务器的 https 连接 一切正常 我能够检索我想要的页面内容 该证书是由 VeriSign 颁发的 我假设 NSURLConnection 做了一些工作来在某种程度上验证证书的
  • P12 证书“数据不足”错误

    我试图使用安全地连接到端点 p12文件 但我不断收到以下错误 tls common js 136 c context loadPKCS12 pfx Error not enough data at Error native at Objec
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • 是否可以使用 Python 中的密码安全地加密然后解密数据?

    我在 python 程序中有一些数据 我想在使用密码写入文件之前对其进行加密 然后在使用它之前读取并解密它 我正在寻找一些可以根据密码进行加密和解密的安全对称算法 这个问题 https stackoverflow com questions
  • OpenSSL的EVP是什么意思?

    OpenSSL的EVP是什么意思 我知道它是 OpenSSL 中的一个更高级别的加密接口库 但是字母 E V P 代表什么 谢谢 陈兹 有趣的问题 我不确定 但是 ifndefevp h 顶部是 ifndef HEADER ENVELOPE

随机推荐

  • java 解决 java.lang.Integer cannot be cast to java.lang.String

    1 在执行代码打印map的value时 xff0c 提示错误java lang Integer cannot be cast to java lang String xff0c 这个错误很明显是类型转换错误 查看表字段的数据 解决方案 1
  • DBoW2应用

    图像对应的bag of words向量 v t 假设词典总共有 W 个单词 xff0c 那么每一幅图像能够用一个 W 维的向量表示 xff08 t 1 t 2 t 3 t W xff09 其中 t i 61 frac n id n nd l
  • 平衡车终于成功了

    说来惭愧2017 12 0118 13 27 并非原创 xff0c 代码资料也是从论坛搜刮的 自己做了适配性的调整 这个小车断断续续造了将近1个月 xff01 1 include 34 Wire h 34 96 2 include lt U
  • 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令

    最新配置新增一台iMac当作持续集成构建的Slaver节点 xff0c 添加节点很顺利 xff0c 但是拉取代码的时候发现无法正常 出现以下提示 xff1a hudson plugins git GitException Command 3
  • FreeRTOS

    在嵌入式领域中 xff0c 嵌入式实时操作系统正得到越来越广泛的应用 采用嵌入式实时操作系统 RTOS 可以更合理 更有效地利用CPU的资源 xff0c 简化应用软件的设计 xff0c 缩短系统开发时间 xff0c 更好地保证系统的实时性和
  • 使用固定的公网TCP端口地址远程桌面【内网穿透】

    文章目录 1 为远程桌面保留一个TCP地址2 配置远程桌面隧道2 1 登录cpolar web ui2 2 修改远程桌面隧道信息2 3 查看公网地址 3 使用固定TCP地址远程桌面总结 在上一篇文章中 xff0c 我们通过cpolar映射远
  • [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗

    Openwrt项目开发笔记 系列文章传送门 xff1a http www cnblogs com double win p 3888399 html 正文 xff1a 昨晚上熬夜写了 Openwrt项目开发笔记 Openwrt平台搭建 xf
  • Mac下IDEA启动Springboot项目慢

    经过百度以及google查询发现 xff0c 启动时调用了java net InetAddress getLocalHost 方法 以此排查调用此方法慢的问题 网上的解决方法都是修改hosts xff0c 后来有人提出 xff0c 慢的原因
  • 关于varnish缓存

    目录 引言 xff1a 缓存的概念一 varnish缓存 1 简介2 总体结构 2 1 两个主进程2 2 Varnish的日志2 3 VCL varnish配置缓存策略的工具二 Varnish的工作模式 more 1 状态引擎的处理流程2
  • varnish6.X安装

    目录 1 rpm方式2 编译安装 2 1 依赖包2 2 编译Varnish 本文提供了两种安装方式 xff0c 但建议使用编译安装 官方链接 xff1a https varnish cache org 部署文档 xff1a https va
  • 安装ANSYS19.0的正确方法(附下载)

    安装ANSYS19 0的正确方法 卸载干净旧版本ANSYS 安装或重新安装之前必须先卸载干净 xff0c 安装过旧版本ANSYS的也要确保卸载干净 电脑环境准备参考以下内容 ANSYS 卸载后重装需要注意的问题 百度经验 https jin
  • 软件设计师 - 错题笔记

    2018 年 5 月 上午题 1 浮点数 浮点数对接时 xff0c 先对阶 xff0c 将小阶向大阶对齐 xff0c 同时尾数右移 n 位 xff08 n 为阶差的绝对值 xff09 2 流水线吞吐率 1 t 单位时间流水线处理的任务数 流
  • CAtia_打开提示:许可证过期怎么办

    CAtia 许可证过期怎么办 xff1a 进计算机管理 xff0c 点开服务和应用程序 xff0c 点服务 xff0c 找到DS License Server xff0c 在启动此服务的地方点启动 xff0c 从而开启DS License
  • 小米手机 fastboot 方式刷入 TWRP recovery 教程,以红米4X(santoni)为例

    最新版TWRP下载链接 xff1a https twrp me xiaomi xiaomiredmi4x html platform tools下载地址 xff1a https developer android google cn stu
  • 远程登录DSM,显示“您没有权限使用本项服务?

    远程登录DSM xff0c 显示 您没有权限使用本项服务 xff1f https www chiphell com thread 825297 1 1 html 有可能你单位用的是多wan接入 一般synology不让多个ip同一帐号同时接
  • 无人机寻迹要两个单片机吗_基于OpenMV的循迹无人机设计

    基于OpenMV的循迹无人机设计 发表时间 xff1a 2020 08 24 基于OpenMV机器视觉模块进行目标识别算法的研究 利用图像的滤波 二值化等算法对摄像头采集的图像进行预处理 利用边缘检测和形状识别算法获得引导线的路线信息 xf
  • linux 流量查看工具 iftop 配置

    linux 流量查看工具 iftop 配置 iftop是LINUX下查看网络流量的软件 iftop 官方网站 http www ex parrot com pdw iftop 1 iftop如何安裝 xff1a 首先查看自己的系统是否安裝
  • 技术系统进化法则是_技术系统进化论,模式七、系统由宏观向微观进化

    阿奇舒勒TRIZ理论三个核心思想 xff1a 1 无论是一个简单产品还是复杂的技术系统 xff0c 其核心技术的发展都是遵循着客观的规律发展演变的 xff0c 即具有客观的进化规律和模式 xff1b 2 各种技术难题和矛盾的不断解决是推动这
  • 吉他谱

    其实我是个诗人 01 得不到你 02 多想在平庸的生活拥抱你 03 往后余生 04 成都 转载于 https www cnblogs com zhangmingyan p 11603872 html
  • Openssl配置CA证书及https访问

    一 创建根秘钥对 1 创建目录 cd mkdir root ca cd root ca mkdir certs crl newcerts private chmod 700 private touch index txt echo 1000