提升1Panel的安全性:在Armbian上设置个性化SSL证书

news/2024/7/7 21:10:29

文章目录

  • 基础知识
    • OpenSSL
    • OpenSSL常用命令
    • SSL证书与DDoS攻击
    • SSL证书常见办法机构
  • armbian安装OpenSSL
    • OpenSSL下载和安装
    • 生成私钥和证书
    • 生成私钥和证书提示信息的解释
      • challenge password
    • 可能遇到的错误
  • 安装完成后的思考
  • 完整的操作演示

基础知识

OpenSSL

  • OpenSSL是一个开源的密码学工具包,提供了一组用于开发安全通信的库和工具。它支持多种密码算法、数字证书和协议,并提供了许多功能,如加密、解密、签名、验证、生成证书和密钥等。

OpenSSL常用命令

  1. 生成私钥和自签名证书:
    • 生成一个2048位的RSA私钥文件 private.key和一个自签名的证书文件 certificate.crt,有效期为365天。
    • 私钥文件用于加密和解密数据,证书文件包含了公钥和相关的证书信息。
    openssl req -newkey rsa:2048 -nodes -keyout private.key -x509 -days 365 -out certificate.crt
    
  • 参数的详细解释:
    • req: 表示使用 OpenSSL 的证书请求工具。
    • -newkey rsa:2048: 创建一个新的 RSA 密钥对,其中 RSA 算法使用 2048 位密钥长度。
    • -nodes: 不加密生成的私钥文件,这样在使用私钥时将不需要输入密码。
    • -keyout private.key: 将生成的私钥保存到 private.key 文件中。
    • -x509: 创建一个自签名的 X.509 证书。
    • -days 365: 设置证书的有效期为 365 天。
    • -out certificate.crt: 将生成的证书保存到 certificate.crt 文件中。

  1. 生成证书签名请求(CSR):
    • 生成一个2048位的RSA私钥和一个证书签名请求。
    openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out csr.csr
    
  • 参数的详细解释:

    • req: 表示使用 OpenSSL 的证书请求工具。
    • -new: 创建一个新的证书请求。
    • -newkey rsa:2048: 创建一个新的 RSA 密钥对,其中 RSA 算法使用 2048 位密钥长度。
    • -nodes: 不加密生成的私钥文件,这样在使用私钥时将不需要输入密码。
    • -keyout private.key: 将生成的私钥保存到 private.key 文件中。
    • -out csr.csr: 将生成的证书请求保存到 csr.csr 文件中。
  • 执行完这段代码后,将生成一个私钥文件 private.key 和一个证书签名请求文件 csr.csr。

  • 私钥文件用于加密和解密数据,证书签名请求文件包含了要申请证书的相关信息,例如域名、组织等。你可以将这个证书签名请求文件提交给证书颁发机构(CA)以获取一个有效的证书。

  1. 查看证书的详细信息:
    • 显示证书的详细信息,包括颁发机构、有效期、公钥等。
    openssl x509 -in certificate.crt -text -noout
    

  1. 查看私钥的详细信息:
    • 显示私钥的详细信息,包括算法、长度等。
    openssl rsa -in private.key -text -noout
    

  1. 加密和解密文件:
    • 将使用AES-256-CBC算法对文件进行加密和解密。
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.txt
openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt
  • 使用 openssl help 命令可以获取更多信息和帮助。

SSL证书与DDoS攻击

  • SSL证书本身不能直接防止DDoS攻击。SSL证书是用于加密传输数据并确保通信的安全,但它并不能保护服务器免受高强度的DDoS攻击。

然而,SSL证书提供了一些额外的安全性,使得它们可以在某些情况下帮助防御DDoS攻击。例如,一些DDoS攻击是基于HTTP请求进行的,而SSL证书可以使HTTP请求变得更复杂和更难以模拟,从而减少了攻击的成功率。此外,SSL证书可能使攻击者更难以确定服务器的真实IP地址,因此他们可能需要更多的时间和资源才能发起有效的攻击。

但要避免遭受DDoS攻击,必须采取其他防御措施,例如使用DDoS保护服务、在服务器上实施正确的配置和更新等。

SSL证书常见办法机构

  • SSL证书的颁发机构是由一些权威的第三方机构(如Symantec、Comodo、GlobalSign等)颁发的。
  • 这些机构负责验证网站的身份和真实性,并将SSL证书颁发给合格的网站。用户连接到这些网站时,可以通过SSL证书验证网站的身份和保护连接的安全性。
  • 颁发机构都提供不同类型的 SSL 证书,可以根据个人或企业需要来选择适合的证书。使用 SSL 证书可以确保网站安全性和信任度,是保护网站和用户隐私的重要措施。

armbian安装OpenSSL

OpenSSL下载和安装

  1. 打开终端,以root用户身份登录或使用sudo权限

  2. 更新软件包列表

    apt update
    
  3. 安装OpenSSL工具

    apt install openssl
    
  4. 验证OpenSSL是否成功安装

    • 成功安装,将显示OpenSSL的版本信息。
    openssl version
    

生成私钥和证书

  1. 生成私钥和证书签名请求(CSR)文件
    • 使用以下命令生成私钥文件:
    openssl genrsa -out private.key 2048
    
    • 使用以下命令生成CSR文件:
    openssl req -new -key private.key -out csr.csr
    
  • 注意:在生成CSR文件时,需要提供一些信息,如国家、省份、城市、组织名称、通用名称(域名)等。

生成私钥和证书提示信息的解释

challenge password

Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:
  • 这是一个可选的额外属性,用于增加证书的安全性。
  • "challenge password"是一个密码,用于保护私钥和证书签名请求。当使用该证书时,可能需要输入这个密码来解锁私钥。
  • 如果不想设置"challenge password",可以直接按下回车键跳过该步骤。这样,私钥将不会被密码保护
  • 如果想设置"challenge password",请输入一个安全的密码并按下回车键。请确保记住这个密码,因为在使用证书时需要输入它。

  1. 提交CSR文件到证书颁发机构(CA)进行签名。也可以选择自签名证书,也可以选择购买商业证书。

  2. 如果选择了自签名证书,可以使用以下命令生成自签名证书:

    #生成一个有效期为365天的自签名证书(未指定存储路径的命令)
    # 没有指定具体的路径,那么它们将被存储在当前工作目录下
    openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
    
    #生成的私钥文件和证书文件将会被保存在你指定的路径中
    openssl x509 -req -days 365 -in /path/to/csr.csr -signkey /path/to/private.key -out /path/to/certificate.crt
    
  • 参数的详细解释:
    • req: 表示使用 OpenSSL 的证书请求工具。
    • -newkey rsa:2048: 创建一个新的 RSA 密钥对,其中 RSA 算法使用 2048 位密钥长度。
    • -nodes: 不加密生成的私钥文件,这样在使用私钥时将不需要输入密码。
    • -keyout private.key: 将生成的私钥保存到 private.key 文件中。
    • -x509: 创建一个自签名的 X.509 证书。
    • -days 365: 设置证书的有效期为 365 天。
    • -out certificate.crt: 将生成的证书保存到 certificate.crt 文件中。

  • 操作成功的提示信息
    root@armbian:~# openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
    Signature ok
    subject=C = ZN, ST = HeNan, L = KF, O = yang, OU = yuanyou, CN = yue, emailAddress = xxx@qq.com
    Getting Private key
    
    • “Signature ok” 的消息表示证书签名成功。
    • 证书的主题信息,如国家(C)、省/州(ST)、城市(L)、组织(O)、组织单位(OU)、通用名称(CN)和电子邮件地址等也会显示出来。


  1. 查看私钥文件和证书文件的存放位置

    • 默认的存储位置:在当前工作目录下,即执行命令时所在的目录
  2. 在1Panel面板中,找到相关的SSL证书配置选项。一般在面板设置->安全->https中,导入私钥文件和证书文件,保存配置。
    在这里插入图片描述
    - 注意将两个文件的内容全部复制到相应的文本框中
    在这里插入图片描述

  3. 重新启动1Panel面板服务,使配置生效。

    • 记得,使用https://xxx.xxx.xxx.xxx:/端口/安全入口访问1panel

可能遇到的错误

  • 服务内部错误: tls: failed to find any PEM data in certificate input

  • OpenSSL无法在输入的证书文件中找到有效的PEM数据。可能的原因:

  1. 证书文件路径错误:请确保你提供的证书文件路径是正确的,并且文件存在。

  2. 证书文件格式错误:证书文件必须采用PEM格式进行编码。

    • 使用文本编辑器打开证书文件,确认它以-----BEGIN CERTIFICATE-----开头,以-----END CERTIFICATE-----结尾,并且没有额外的空格或换行符。
  3. 证书文件内容错误:如果证书文件已被篡改或损坏,OpenSSL可能无法正确解析它。

安装完成后的思考

  1. 为什么1panel配置了openSSl证书,结果还是浏览器还是显示不安全
    在这里插入图片描述
    在这里插入图片描述
  • 原因:
    • 浏览器显示证书无效的警告通常是因为使用了自签名证书。自签名证书是由自己或自己的组织颁发的,而不是由公共的证书颁发机构(CA)颁发的。
    • 浏览器默认信任公共的证书颁发机构颁发的证书,因此当你使用自签名证书时,浏览器会认为该证书不受信任,从而显示证书无效的警告。

  • 建议:自签名证书在个人或内部使用的情况下是可以接受的,但在公共网站或需要与用户共享敏感信息的场景下,建议使用由公共的证书颁发机构颁发的有效证书。

完整的操作演示

Last login: Tue Jul 11 09:55:58 2023 from localhost
root@armbian:~# apt update
root@armbian:~# apt upgrade
root@armbian:~# apt install openssl
root@armbian:~# openssl version
OpenSSL 1.1.1n  15 Mar 2022
root@armbian:~# openssl genrsa -out private.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
............................+++++
e is 65537 (0x010001)
root@armbian:~# openssl req -new -key private.key -out csr.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ZN
State or Province Name (full name) [Some-State]:HeNan
Locality Name (eg, city) []:KF
Organization Name (eg, company) [Internet Widgits Pty Ltd]:yang
Organizational Unit Name (eg, section) []:yuanyou 
Common Name (e.g. server FQDN or YOUR name) []:yue
Email Address []:xxx@qq.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:xxxx
An optional company name []:yang
root@armbian:~# openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
Signature ok
subject=C = KF, ST = HeNan, L = KF, O = yang, OU = yuanyou, CN = yue, emailAddress = 2330648064@qq.com
Getting Private key
root@armbian:~# 

http://lihuaxi.xjx100.cn/news/1333444.html

相关文章

C++学习第二十二天(deque容器及案例)

deque容器的基本概念 功能:双端数组,可以对头端进行删除和插入 deque和vector的区别 vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入和删除比较块 vector访问元素的速度比deque快&am…

STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061

STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061 Proteus仿真小实验: STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061 功能: 硬件组成:STM32F103R6单片机 TM1637 4位数码管驱动电路2路0~20V电压测量模块2个电位器输出0-…

回归预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计学习总结参考资料 预测效果 基本介…

系统测试——postman的400错误

如果Headers中不勾选Host,调用接口就会报400 Bad Request错误。

基于nginx的waf方案naxsi源码理解(1)_naxsi介绍

naxsi是什么 naxsi是基于nginx(从技术上讲,它是一个第三方的nginx模块)的web应用防火墙。集成了libinjection做sql注入攻击和xss攻击检测。 检测策略有libinjection 的特征检测库 及 naxsi 自身的策略库,都支持自定义策略。 naxsi的源码位置: https://github.com/nbs-sy…

k8s 就绪探针

【k8s 系列】k8s 学习二十,就绪探针 提起探针,不知兄dei 们是否有印象,之前我们分享过存活探针,分享存活探针是如何确保异常容器自动重启来保持应用程序的正常运行,感兴趣的可以查看文章 k8s 系列k8s 学习十七&#x…

python_寻找底部股票

目录 写在前面: 下面开始进入正文,正文很长,先概述要点步骤,以防迷路。 先看最终结果(当前价格为2023-07-10收盘价) 1 下载股票基本信息、股票日数据 step one step two 2 从股票日数据中提取股票月数…

Unity UGUI的Dropdown(下拉菜单)组件的介绍及使用

Unity UGUI的Dropdown(下拉菜单)组件的介绍及使用 1. 什么是Dropdown组件? Dropdown(下拉菜单)是Unity UGUI中的一个常用组件,用于在用户点击或选择时显示一个下拉菜单,提供多个选项供用户选择…