在Ubuntu22.04上部署自签名SSL证书

news/2024/9/29 18:58:35/

自签名证书签发相对于商业证书流程简单,费用低廉,更新容易。所以在开发领域、甚至一些小众场景下特别常见,比如公司的内网服务、网站安全证书、企业路由器设备的管理后台、用于管理企业员工的“安全准入客户端”等不乏使用这个方案。

接下来我们就介绍如何在Ubuntu22.04部署SSL自签名证书,我们先设定,本次服务器的IP为:192.168.1.25,使用apache2作为网站发布的软件,并且系统以root进行登录。

一:CA证书的生成

1、安装SSL模块

apt install ssl-cert a2enmod ssl

2、生成私钥和证书请求:

openssl req -newkey rsa:2048 -nodes -keyout ca.key -out ca.csrCountry Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BBM
Organizational Unit Name (eg, section) []:BBM
Common Name (e.g. server FQDN or YOUR name) []:192.168.29.60
Email Address []:xxxx@qq.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

3、自签发证书

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

4、生成服务器证书

创建csr,证书签名文件(Certificate Singing Request)

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csrCountry Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BJ
Locality Name (eg, city) []:BJ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BBM
Organizational Unit Name (eg, section) []:BBM
Common Name (e.g. server FQDN or YOUR name) []:192.168.29.60
Email Address []:XXXXXX@qq.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

5、生成客户端证书

openssl genrsa -out client.key 2048

生成client.key

openssl req -new -key client.key -out client.csrCountry Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BJ
Locality Name (eg, city) []:BJ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BBM
Organizational Unit Name (eg, section) []:BBM
Common Name (e.g. server FQDN or YOUR name) []:192.168.29.60
Email Address []:XXXXXX@qq.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365

6、至此,所有证书生成完成

二:在Ubuntu22.04的apache2上面配置ssl

1、为ubuntu安装open ssl

apt-get install openssl
apt-get install libssl-dev

2、启动SSL模块

a2enmod ssl

 3、在Apache2的安装目录下创建一个用于存放证书的ssl目录。如果已经有此目录,则此步可以忽略。

mkdir /etc/ssl/certs/
mkdir /etc/ssl/private/

4、将证书文件和私钥文件上传到Apache2证书目录

cp /root/server.ctr /etc/ssl/certs/
cp /root/server.key /etc/ssl/private/

5、执行以下命令,启用SSL模块
sudo a2enmod ssl

(1)、/sites-available目录存放的是可用的虚拟主机。
(2)、/sites-enabled目录存放的是已经启用的虚拟主机。
(3)、SSL模块启用后,会在/etc/apache2/sites-available目录生成SSL证书配置文件default-ssl.conf。

4、编辑default-ssl.conf文件,修改与证书相关的配置。
vim /etc/apache2/sits-enabled/default-ssl.conf
修改监听端口:VirtualHost_default_:443
添加如下两句:SSLEngine on
             SSLPROTOCOL all -SSLv2 -SSLv3
             SSLOptions +StrictRequire

service apache2 restart

修改ports.conf
修改监听端口

5、执行以下命令,将default-ssl.conf映射至/etc/apache2/sites-enabled目录,实现两者之间的自动关联。

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

6、执行以下命令,重新加载Apache2配置文件。
sudo /etc/init.d/apache2 force-reload

7、执行以下命令,重启Apache2服务。
sudo /etc/init.d/apache2 restart

8、验证访问
https://192.168.29.60/


http://www.ppmy.cn/news/1532052.html

相关文章

Pencils Protocol 成市场新宠,生态通证$DAPP价值几何

Pencils Protocol 是 Scroll 生态综合性收益平台,其仅在 Scroll 生态单链 TVL 就已经突破了 3.5 亿美元,同时在上线短短几个月的时间里就积累了超 50 万活跃社区用户。现阶段 Pencils Protocol 已经完成了 DAPP 通证的 TGE ,分别在 Tokensoft…

流水标准化处理器

作品描述 传统方式处理银行流水时,由于不同的银行,流水格式不尽相同,需要针对不同银行构建不同的处理器(Handler)分别处理,导致系统耦合性高且可拓展性低。 流水标准化处理器则采用配置的方式&#xff0c…

Java零工市场小程序如何改变自由职业者生活

如今,自由职业者越来越多,他们需要找到合适的工作机会,Java零工市场小程序,为自由职业者提供了一个方便、快捷的寻找工作机会的方式,这样一来,改变了自由职业者找寻工作的方式,也提高了他们的收…

MySQL 临时表

MySQL 临时表 引言 在数据库管理中,临时表是一种非常有用的工具,尤其是在进行复杂的数据处理和查询时。MySQL 作为一种流行的关系型数据库管理系统,提供了对临时表的支持。本文将详细介绍 MySQL 临时表的概念、用途、创建方法以及管理技巧。…

Python 学习之生成图形验证码

一、 如何生成图形验证码? 新建一个captcha 的python 文件包,在__init__.py 文件中写入生成图形验证码的代码,将字体文件也放入这个文件包中 。 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter import stringcla…

自学网络安全(黑客技术)2024年 —90天学习计划

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”…

C#案例 | 基于C#语言在Excel中进行二次开发(一):简单系统搭建:打印输出“Hello Excel C#”

基于C#语言在Excel中进行二次开发(一):简单系统搭建:打印输出”Hello Excel & C#” 实现效果第一步:前期准备第二步:打开VS 2022,创建项目第三步:程序界面设计 实现效果 在Exce…

加载数据模型:在数据采集中实现动态数据处理

介绍 在现代网络爬虫技术中,数据的动态处理成为了提升采集效率和准确性的重要手段。随着目标网站数据的多样性和复杂性增加,静态数据采集方法逐渐无法满足需求。本文以拼多多为例,探讨如何通过加载数据模型实现动态数据处理,并结…