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

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

接下来我们就介绍如何在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.csr

Country 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.com

Please 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.csr

Country 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.com

Please 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.csr

Country 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.com

Please 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/

<think>好的,用户的问题是在Ubuntu 22.04上生成和部署自签名SSL证书。我需要根据提供的引用内容来整理步骤。首先,查看引用[1]提到使用Apache2作为服务器软件,IP是192.168.1.25,以root登录。引用[2]是关于Certbot为域名配置SSL,但用户需要的是自签名证书,可能不需要Certbot。引用[3]安装RabbitMQ时安装了erlang-ssl,这可能和OpenSSL有关联。 首先,生成自签名证书通常使用OpenSSL工具。步骤可能包括安装OpenSSL,生成私钥和证书,配置Apache使用这些文件。引用[1]里的Apache配置需要修改站点配置文件,指定SSLCertificateFile和SSLCertificateKeyFile。同时需要启用SSL模块和站点配置,然后重启Apache。 用户可能还需要调整防火墙设置,允许HTTPS流量。另外,自签名证书会引发浏览器警告,需要用户手动信任,这点要提醒用户注意。 需要确保步骤正确,语法正确,比如用a2enmod和a2ensite命令。同时,路径是否正确,比如证书存放的位置一般在/etc/ssl目录下。可能还需要检查Apache的SSL配置是否启用默认的SSL站点,或者用户是否需要创建新的虚拟主机。 总结步骤:安装OpenSSL,生成证书,配置Apache,启用模块和站点,重启服务,测试。最后相关问题部分可以涉及其他服务器如Nginx,或者如何避免浏览器警告,以及证书有效期等。</think>### 如何在 Ubuntu 22.04 上生成和部署自签名 SSL 证书 #### **步骤 1:安装 OpenSSL** 若未安装 OpenSSL,可通过以下命令安装: ```bash sudo apt update sudo apt install openssl ``` #### **步骤 2:生成自签名证书** 1. **生成私钥和证书** 执行以下命令生成有效期 365 天的自签名证书(`-nodes` 表示私钥不加密): ```bash sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/selfsigned.key \ -out /etc/ssl/certs/selfsigned.crt ``` - 根据提示填写信息(如国家、域名等),`Common Name` 需填写服务器域名或 IP(例如 `192.168.1.25`)。 #### **步骤 3:配置 Apache 使用证书** 1. **启用 SSL 模块** ```bash sudo a2enmod ssl ``` 2. **修改站点配置文件** 编辑 Apache 的默认 SSL 配置文件或创建新虚拟主机(以 `/etc/apache2/sites-available/default-ssl.conf` 为例): ```apache <VirtualHost *:443> ServerName 192.168.1.25 SSLEngine on SSLCertificateFile /etc/ssl/certs/selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/selfsigned.key # 其他配置(如 DocumentRoot) </VirtualHost> ``` 3. **启用 SSL 站点并重启 Apache** ```bash sudo a2ensite default-ssl.conf sudo systemctl restart apache2 ``` #### **步骤 4:防火墙放行 HTTPS** 若启用防火墙(如 UFW),需允许 HTTPS 流量: ```bash sudo ufw allow 443/tcp ``` #### **步骤 5:验证证书** 通过浏览器访问 `https://192.168.1.25`,由于是自签名证书,浏览器会提示“不安全”,需手动信任证书[^1]。 --- ### **相关问题** 1. 如何在 Nginx 中配置自签名 SSL 证书? 2. 自签名证书与 CA 签名证书有何区别? 3. 如何避免浏览器对自签名证书的警告? 4. 如何延长自签名证书的有效期? --- **引用说明** 本文参考了 Apache 配置与 SSL 模块部署的基本流程[^1],并结合 OpenSSL 工具的使用方法完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBM的开源HUB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值