一、域名更换证书

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. dotnet 警惕使用 StackTrace 加获取方法标记 Attribute 特性在 Release 下被内联

    大家都知道,在 dotnet 里的 Debug 下和 Release 下的一个最大的不同是在 Release 下开启了代码优化.启用代码优化,将会对生成的 IL 代码进行优化,同时优化后的 IL 也会 ...

  2. 2019-8-31-PowerShell-使用-WMI-获取信息

    title author date CreateTime categories PowerShell 使用 WMI 获取信息 lindexi 2019-08-31 16:55:58 +0800 201 ...

  3. XYCTF pwn部分题解 (部分题目详解)

    hello_world(签到) 思路: 这道题就是利用printf函数泄露libc的基地址,然后再次进行栈溢出通过system,/bin/sh来获取shell wp: invisible_flag 思 ...

  4. 【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论

    目录 一.爬取目标 二.展示爬取结果 三.爬虫代码 四.同步视频 五.附完整源码 您好,我是@马哥python说,一枚10年程序猿. 一.爬取目标 之前,我分享过一些B站的爬虫: [Python爬虫案 ...

  5. 03. go-zero简介及如何学go-zero

    目录 一.go-zero简介及如何学go-zero 1.go-zero官方文档 2.go-zero微服务框架入门教程 3.go-zero最佳实践 4.学习资料 二.go-zero环境搭建 1.GO环境 ...

  6. git安装和git命令:全局设置用户名邮箱配置

    在网上下载并安装git:https://git-scm.com/downloads在开始菜单里面找到 "Git --> Git Bash",如下 运行Git Bash: 如果 ...

  7. fastposter v2.8.0 发布 电商海报编辑器

    fastposter v2.8.0 发布 电商海报编辑器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报,二维 ...

  8. Django国际化与本地化指南

    title: Django国际化与本地化指南 date: 2024/5/12 16:51:04 updated: 2024/5/12 16:51:04 categories: 后端开发 tags: D ...

  9. 一文了解npm install -g和npm install --save-dev的关系

    本文分享自华为云社区<npm install -g 和 npm install --save-dev 的关系>,作者: SHQ5785. 一.npm install 本地安装 将安装包放在 ...

  10. GROUP BY clause and contains nonaggregated 报错处理

    1055 - Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column 报错处 ...