Nginx SSL证书更新及密码套件更新
一、域名更换证书
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证书更新及密码套件更新的更多相关文章
- nginx ssl证书安装配置
原理图: - 客户端生成一个随机数 random-client,传到服务器端(Say Hello) - 服务器端生成一个随机数 random-server,和着公钥,一起回馈给客户端(I got it ...
- ubuntu nginx ssl 证书配置
前几天自己用 egg.js 写了个 api 接口,然后把它部署到服务器上.服务器是ubuntu 16.04 + nginx:因为要用到https,然后今天实践了一下如何配置https. 关于htt ...
- 安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题
开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会 ...
- Nginx ssl证书部署
查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers 苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始&quo ...
- Nginx ssl证书部署方法
查看当前安装的OpenSSL版本所支持的密码列表,可以使用下列命令:openssl ciphers 苹果ATS检测:https://www.qcloud.com/product/ssl 刚开始&quo ...
- nginx ssl证书
server { listen ; server_name xxx.com; root "/home/www/website"; ssl on; ssl_certificate / ...
- 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 # ...
- (转)IHS配置安全漏洞: 支持不推荐使用的 SSL 版本、在降级的旧加密上填充 Oracle、检测到 RC4 密码套件、支持弱 SSL 密码套件、 重构 RSA 导出键(又称为 FREAK)
原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由于ihs配置中支持不推荐使用的ssl版本和弱密码套件引起的. 只要在配置文 ...
- linux下nginx配置ssl证书(https)
nginx配置ssl很简单,首先需要两个文件,一个是crt文件,另一个是key文件,如下所示: xxx.crt; #(证书公钥)xxx.key; #(证书私钥) 把这两个文件放到nginx的conf ...
- nginx+ssl 服务器 双向认证
项目后台服务器采用nginx+tomcat 负载均衡架构 不久 访问协议有http升级为https 对服务器认证采用沃通的ssl证书 nginx ssl证书安装 参照沃通官方文档 他们有技术支持沟通 ...
随机推荐
- dotnet 读 WPF 源代码笔记 简单聊聊文本布局换行逻辑
在 WPF 里面,带了基础的文本库功能,如 TextBlock 等.文本库排版的重点是在文本的分行逻辑,也就是换行逻辑,如何计算当前的文本字符串到达哪个字符就需要换到下一行的逻辑就是文本布局的重点模块 ...
- LMDeploy量化部署LLM&LVM实操-书生浦语大模型实战营第二期第5节作业
书生浦语大模型实战营第二期第5节作业 本页面包括实战营第二期第五节作业的全部操作步骤.如果需要知道模型量化部署的相关知识请访问学习笔记. 作业要求 基础作业 完成以下任务,并将实现过程记录截图: 配置 ...
- 茴香豆 RAG 平台实操-书生浦语大模型实战营第二期第3节作业
书生浦语大模型实战营第二期第3节作业 本页面包括实战营第二期第三节作业的全部操作步骤.如果需要知道RAG相关知识请访问学习笔记. 作业要求 基础作业 在茴香豆 Web 版中创建自己领域的知识问答助手 ...
- NSThread的main方法内部做了什么?
NSThread当调用start方法的时候,start方法就会调用main方法.那么这个main方法内部做了什么呢?下面是汇编码: 1 ;Foundation`-[NSThread main]: 2 ...
- Git基本操作命令大全
一.全局配置命令 ## 配置级别: –local(默认,高级优先):只影响本地仓库 –global(中优先级):只影响所有当前用户的git仓库 –system(低优先级):影响到全系统的git仓库 # ...
- Oracle删除列操作:逻辑删除和物理删除
概念 逻辑删除:逻辑删除并不是真正的删除,而是将表中列所对应的状态字段(status)做修改操作,实际上并未删除目标列数据或恢复这些列占用的磁盘空间.比如0是未删除,1是删除.在逻辑上数据是被删除了, ...
- java程序,如何打印详细报错堆栈信息
try { System.out.println(1/0); } catch (final Exception e) { log.error("ERROR", "Erro ...
- 如何使用Mac远程控制Windows电脑?
如何使用Mac远程控制Windows电脑?在你开始之前,设置您要远程处理的 Windows 计算机. 先安装 Microsoft Remote Desktop. 打开 Microsoft Remote ...
- 鸿蒙HarmonyOS实战-ArkUI事件(组合手势)
一.组合手势 应用程序的手势操作是指在移动设备上使用手指或手势进行与应用程序交互的方式.手势操作可以包括点击.滑动.双击.捏合等动作,用于实现不同的功能和操作. HarmonyOS中常见的手势操作及其 ...
- Git 合并冲突
目录 文章目录 目录 合并冲突 合并分支 合并最近的两次提交 合并冲突 步骤: git status 找到冲突的文件 将冲突去除 将冲突文件重新加入临时区 git add egis/api/v1/ro ...