Ubuntu安装OpenSSL

简介:

一、OpenSSL简单介绍

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

    SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。


二、安装相应软件包

1
2
3
4
sudo  apt-get  install  apache2       ##安装Apache
sudo  apt-get  install  openssl       ##安装openssl
sudo  apt-get  install  libssl-dev     ##安装openssl开发库
sudo  apt-get  install  bless        ##编辑器使用 bless 十六进制编辑器,需预先安装



三、openssl.cnf简单释义


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
vi  /usr/lib/ssl/openssl .cnf
127 [ req_distinguished_name ]
128 countryName                     = Country Name (2 letter code) ##国家名,2个字母代码简称
129 countryName_default             = CN    ##中国就是CN
130 countryName_min                 = 2
131 countryName_max                 = 2
132 
133 stateOrProvinceName             = State or Province Name (full name) ##州或省的名字
134 stateOrProvinceName_default     = beijing
135 
136 localityName                    = Locality Name (eg, city)    ##本地城市名
137 localityName_default            =beijing
138 0.organizationName              = Organization Name (eg, company)  ##组织(公司)名
139 0.organizationName_default      = beijing www company
140 
145 organizationalUnitName          =Organizational Unit Name(eg,section) ##组织单元(部门)名
146 organizationalUnitName_default  = www
147
148 commonName                      = Common Name(e.g.server FQDN or YOUR name) ##服务器域名
149 commonName                      = www.baidu.com
150 commonName_max                  = 64
151 
152  #emailAddress                   = Email Address      ##Email地址
153 emailAddress                    = admin@baidu.com
154 emailAddress_max                = 64
155 
156  # SET-ex3                       = SET extension number 3
157 
158 [ req_attributes ]
159  #challengePassword              = A challenge password   ##修改密码
160 challengePassword               = 
161 
163 challengePassword_min           = 4
164 challengePassword_max           = 20

 


四、成为数字证书认证机构(CA),并为该CA生成证书

①将openssl.cnf配置文件拷贝到当前目录下并创建以下在配置文件中指定的子文件夹

wKioL1XLAHGgHZ-bAAAxI0QjDoQ917.jpg

1
2
3
4
5
6
sudo  ln  /usr/lib/ssl/openssl .cnf .       
mkdir  demoCA                                          
cd  demoCA                                            
mkdir  certs crl newcerts                        
touch  index.txt serial   ##index.txt为空;
                           ##serial必须写入内容,且为字符串格式的数字(比如1111)

设置好这些后,现在就可以创建和发布证书了


②为自己的 CA 生成自签名证书,这意味着该机构是被信任的,而它的证书会作为 root 证书

1
$ openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

wKioL1XMgjmzuePLAAIMibR5cAY144.jpg


注:务必记住自己所输入的密码,命令输出的文件存储:ca.key 与 ca.crt 中。文件 ca.key 包括 CA 的私钥,而 ca.crt 包含了公钥证书。


五、为客户生成证书

   现在,我们是 root CA 了,可以为客户签数字证书了,客户是www.baidu.com


①生成公开/私有密钥对

1
$ openssl genrsa -des3 -out server.key 1024

wKioL1XMW1zzV0dtAACZBmrhAuo779.jpg

注:需要提供一个密码来保护你的密钥,密钥会被保存在 server.key 文件中.


②生成证书签名请求 ,一旦公司拥有了密钥文件,它应当生成证书签名请求(CSR)。CSR 将被发送给 CA,CA 会为该请求生成证书(通常在确认 CSR 中的身份信息匹配后)。

1
$ openssl req -new -key server.key -out server.csr -config openssl.cnf

wKioL1XMgtjxs5sgAAH--YlDios531.jpg

注:请记住自己的输入


③生成证书。CSR 文件需要拥有 CA 的签名来构成证书(在现实世界中,CSR 文件常常被发送给可信任的 CA 签名)。输入CA的密钥,使用我们自己的 CA 来生成证书:

1
$ openssl ca - in  server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

wKiom1XMgavT0UWAAAIciHAz7XE481.jpg


六、在网站中使用PKI

1
2
sudo  vi  /etc/hosts
127.0.0.1    www.baidu.com



②启动一个拥有之前生成的证书的简单的 web 服务器

1
2
3
cp  server.key server.pem
cat  server.crt >> server.pem            ##将密钥和证书合并成一个文件
$ openssl s_server -cert server.pem -www     ##使用server.pem启动服务器

wKioL1XMhc3TudBFAABFzpRo7BQ305.jpg


③默认情况下,服务器会监听 4433 端口。输入https://www.baidu.com:4433

wKiom1XMhEjxcDYVAAENZ8Ql08Q080.jpg

注:提示此连接不受信任是因为我们的CA是自签名的,如是VeriSign 之类的 CA 授权的话就不会出现该情况了。


在这里可以配置让火狐接受我们的自签名(其他浏览器大同小异),配置如下:

菜单--->首选项--->高级--->证书--->查看证书(证书管理器)--->导入--->进入你配置openssl的目录,选择ca.crt--->打开(下载证书)--->勾上“信任使用此CA标识的网站”--->确定,然后刷新网站

wKioL1XMid6A4szLAAHDtla8VIY255.jpg

wKiom1XMh_jhdOeZAACAdYWbHR4356.jpg

wKiom1XMiK-TN9DIAAMzHLcknBw855.jpg

wKiom1XMiTWBW8rKAAC_H5U9ipQ638.jpg

本文转自  结束的伤感  51CTO博客,原文链接:http://blog.51cto.com/wangzhijian/1684454
相关文章
|
20天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
111 25
|
3天前
|
NoSQL Ubuntu 网络安全
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
14 1
|
8天前
|
Ubuntu TensorFlow 算法框架/工具
如何在Ubuntu上安装TensorFlow 24.04
如何在Ubuntu上安装TensorFlow 24.04
34 1
|
1月前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
355 15
|
3天前
|
Ubuntu Linux Docker
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
30 0
|
2月前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
60 6
|
3月前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
266 13
|
3月前
|
监控 关系型数据库 MySQL
Ubuntu24.04安装Librenms
此指南介绍了在Linux系统上安装和配置LibreNMS网络监控系统的步骤。主要内容包括:安装所需软件包、创建用户、克隆LibreNMS仓库、设置文件权限、安装PHP依赖、配置时区、设置MariaDB数据库、调整PHP-FPM与Nginx配置、配置SNMP及防火墙、启用命令补全、设置Cron任务和日志配置,最后通过网页完成安装。整个过程确保LibreNMS能稳定运行并提供有效的网络监控功能。
|
4月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
911 50
|
3月前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
1527 12