一、域名更换证书

ssl证书一般包括证书文件crt、cer、pem、pfx和私钥文件key。

CER、CRT、PEM 和 PFX 是不同的证书文件格式,它们之间存在一些区别:

CER (DER 编码)

    • CER 文件是使用 DER 编码的证书文件格式。

    • CER 文件通常包含单个 X.509 证书。

    • CER 文件可以包含根证书、中间证书或服务器/客户端证书。

CRT (PEM 编码)

    • CRT 文件是使用 PEM 编码的证书文件格式。

    • CRT 文件通常包含单个 X.509 证书,以 "-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----" 标签括起来。

    • CRT 文件可以包含根证书、中间证书或服务器/客户端证书

PEM (Base64 编码)

    • PEM 文件是使用 Base64 编码的证书文件格式。

    • PEM 文件可以包含单个或多个证书、私钥或其他 SSL/TLS 相关信息。

    • PEM 文件通常以 "-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----" 或 "-----BEGIN PRIVATE KEY-----" 和 "-----END PRIVATE KEY-----" 标签括起来。

PFX (PKCS#12 格式)

    • PFX 文件是一种二进制格式,用于将私钥和证书打包在一起。

    • PFX 文件可以包含服务器/客户端证书及其相应的私钥。

    • PFX 文件通常受密码保护,用于在不同系统或平台之间传输证书和私钥。

总的来说:

  • CER 和 CRT 都是 X.509 证书文件,区别在于编码格式(DER 和 PEM)。

  • PEM 是一种通用的证书/私钥存储格式,可以包含单个或多个证书、私钥等。

  • PFX 是一种打包证书和私钥的二进制格式,通常用于在不同系统之间传输证书。

在配置 SSL/TLS 时,需要根据具体的应用程序要求选择合适的证书文件格式。通常 PEM 格式是最常用的,因为它可以灵活地包含证书链和私钥。

如果需要查看转换后的 CRT 证书内容,可以使用以下命令:

openssl x509 -in output_certificate.crt -text -noout

这将显示证书的详细信息,包括颁发者、主题、有效期等。

1.1 pfx格式证书转换成key和crt

  • 准备阶段

1、nginx在编译安装时得安装ssl模块。
2、如果系统没有openssl,则安装opssl。
3、上传ssl证书到服务器/usr/local/nginx/ssl/xxx.pfx。
  • 生成证书crt可key

openssl pkcs12 -in /usr/local/nginx/ssl/xxx.pfx -clcerts -nokeys -out /usr/local/nginx/ssl/xxx.crt
openssl pkcs12 -in /usr/local/nginx/ssl/xxx.pfx -nocerts -nodes -out /usr/local/nginx/ssl/xxx.key
  • 验证证书正确性

openssl s_server -www -accept 443 -cert /usr/local/nginx/ssl/xxx.crt -key /usr/local/nginx/ssl/xxx.key
  • 配置nginx

server {  
  listen 443;  
  server_name localhost;
  ssl on;  
  ssl_certificate /usr/local/nginx/ssl/xxx.crt;  
  ssl_certificate_key /usr/local/nginx/ssl/xxx.rsa;  
  ssl_session_timeout 5m;  
  ssl_protocols SSLv2 SSLv3 TLSv1;  
  ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;  
  ssl_prefer_server_ciphers on;  
  location ~ /api/(.*) {
          proxy_redirect off;
          proxy_set_header Host $host;
          proxy_set_header X-Ssl on;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://serverAPI;
      }
  }

1.2 pfx格式证书通过pem转换成key和crt

  • 准备阶段

1、nginx在编译安装时得安装ssl模块。
2、如果系统没有openssl,则安装opssl。
3、上传ssl证书到服务器/usr/local/nginx/ssl/xxx.pfx。
  • 先将pfx转换成.pem文件

# openssl pkcs12 -in 你的文件名.pfx -nodes -out 转换后的文件名.pem
openssl pkcs12 -in CertificateAndKey.pfx -nodes -out test.pem
  • 将pem文件导出为key

openssl rsa -in test.pem -out test.key
  • 将pem文件导出为crt

openssl x509 -in test.pem -out test.crt
  • 验证证书正确性

openssl s_server -www -accept 443 -cert /usr/local/nginx/ssl/xxx.crt -key /usr/local/nginx/ssl/xxx.key
  • 配置nginx

server {  
   listen 443;  
   server_name localhost;
   ssl on;  
   ssl_certificate /usr/local/nginx/ssl/xxx.crt;  
   ssl_certificate_key /usr/local/nginx/ssl/xxx.key;  
   ssl_session_timeout 5m;  
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  
   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;  
   ssl_prefer_server_ciphers on;  
   location ~ /api/(.*) {
           proxy_redirect off;
           proxy_set_header Host $host;
           proxy_set_header X-Ssl on;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_pass http://serverAPI;
      }
  }

1.3 将cer证书文件转换为crt格式

  1.3.1 转换 .cer 文件为 .crt 文件

    • 可以使用 OpenSSL 工具将.cer文件转换为.crt文件:

      # 如果cer格式是PEM编码的直接使用下面
      openssl x509 -in input_certificate.cer -out output_certificate.crt -outform PEM
      # 如果cer格式是DER编码格式直接使用下面
      openssl x509 -in input_certificate.cer -out output_certificate.crt -inform DER -outform PEM

      其中:
      input_certificate.cer 是输入的 CER 格式证书文件。
      output_certificate.crt 是输出的 CRT 格式证书文件。
      -inform DER 指定输入证书的格式为 DER。
      -outform PEM 指定输出证书的格式为 PEM。

  1.3.2 更新 Nginx 配置

    • 在 Nginx 的server块中,更新ssl_certificate和ssl_certificate_key指令:

      ssl_certificate /path/to/your_certificate.crt;
      ssl_certificate_key /path/to/your_private_key.key;
    • 如果你使用了.pem格式的私钥文件,则将ssl_certificate_key指令更新为:

      ssl_certificate_key /path/to/your_private_key.pem;

二、SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

SSL/TLS 密码套件(ssl_ciphers)是指在 SSL/TLS 握手过程中,客户端和服务器协商使用的加密和消息认证的算法集合。

# 更新ssl_ciphers配置
ssl_ciphers HIGH:!aNULL:!MD5:!DES:!3DES;
 

Nginx SSL证书更新及密码套件更新的更多相关文章

  1. nginx ssl证书安装配置

    原理图: - 客户端生成一个随机数 random-client,传到服务器端(Say Hello) - 服务器端生成一个随机数 random-server,和着公钥,一起回馈给客户端(I got it ...

  2. ubuntu nginx ssl 证书配置

      前几天自己用 egg.js 写了个 api 接口,然后把它部署到服务器上.服务器是ubuntu 16.04 + nginx:因为要用到https,然后今天实践了一下如何配置https. 关于htt ...

  3. 安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题

    开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会 ...

  4. Nginx ssl证书部署

    查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers 苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始&quo ...

  5. Nginx ssl证书部署方法

    查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers 苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始&quo ...

  6. nginx ssl证书

    server { listen ; server_name xxx.com; root "/home/www/website"; ssl on; ssl_certificate / ...

  7. CentOS 7.2 下nginx SSL证书部署的方法(使用crt以及key 配置)

    转自:https://www.jb51.net/article/107350.htm 环境 系统环境:CentOS6.7 nginx version: nginx/1.8.1 证书 ? 1 2 3 # ...

  8. (转)IHS配置安全漏洞: 支持不推荐使用的 SSL 版本、在降级的旧加密上填充 Oracle、检测到 RC4 密码套件、支持弱 SSL 密码套件、 重构 RSA 导出键(又称为 FREAK)

    原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由于ihs配置中支持不推荐使用的ssl版本和弱密码套件引起的. 只要在配置文 ...

  9. linux下nginx配置ssl证书(https)

    nginx配置ssl很简单,首先需要两个文件,一个是crt文件,另一个是key文件,如下所示: xxx.crt;  #(证书公钥)xxx.key; #(证书私钥) 把这两个文件放到nginx的conf ...

  10. nginx+ssl 服务器 双向认证

    项目后台服务器采用nginx+tomcat 负载均衡架构  不久 访问协议有http升级为https 对服务器认证采用沃通的ssl证书 nginx ssl证书安装 参照沃通官方文档 他们有技术支持沟通 ...

随机推荐

  1. 17.prometheus服务发现&基于文件的服务发现

    一.服务发现 Prometheus 中是如何使用服务发现来查找和抓取目标的.我们知道在 Prometheus 配置文件中可以通过一个 static_configs 来配置静态的抓取任务,但是在云环境下 ...

  2. 8.k8s之调动pod到指定节点与创建多容器pod并查找pod日志

    官方文档:将pod分配给节点题目1:调度pod到指定节点 设置配置环境kubectl config use-context k8s 按如下要求创建并调度一个pod: - 名称:nginx-kusc00 ...

  3. van-tab吸顶后头部透明色渐变响应

    方法一:监听滚动事件 $('.scrollContent').bind('touchmove', function(e){             var  winHeight = $(window) ...

  4. 小程序中使用 lottie 动画 | 踩坑经验分享

    最近被拉去支援紧急需求(赶在五一节假日前上线的,双休需要加班),参与到项目中才知道,开发的项目是微信小程序技术栈的.由于是临时支援,笔者也很久没开发过微信小程序了,所以挑选了相对独立,业务属性相对轻薄 ...

  5. 01 go-zero入门--单体服务demo

    目录 官方文档: 视频地址: 系统环境: 配置环境: 1. golang安装 2. go module配置 3. goctl安装 4.protoc,protoc-gen-go,protoc-gen-g ...

  6. docker-compose 配置LNMP环境

    仓库地址: https://gitee.com/haima1004/docker-lnmp 参考文档: 视频地址: https://www.bilibili.com/video/BV1S54y1B7K ...

  7. 03.redis 事务

    课程学习地址: https://www.bilibili.com/video/BV1S54y1R7SB?p=23 中间手册地址: http://www.redis.cn/ Redis事务本质:一组命令 ...

  8. leaflet利用hotline实现河流差值渲染热力图

    实现效果(这里做了1条主河道和5个支流): 核心代码使用了Leaflet.hotline插件,github下载地址链接 详情见我之前整理的一篇文章介绍河流热力图 核心代码逻辑: // 处理河流数据以及 ...

  9. 从零在win10上测试whisper、faster-whisper、whisperx在CPU和GPU的各自表现情况

    Anaconda是什么? Anaconda 是一个开源的 Python 发行版本,主要面向数据科学.机器学习和数据分析等领域.它不仅包含了 Python 解释器本身,更重要的是集成了大量的用于科学计算 ...

  10. Python基础篇(安装)

    Python简介 Python是Guido van Rossum发布于1991年的一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,是一种解释型的,弱类型的高级计算机语言.需要注意的是pyth ...