标签归档:Ubuntu

在Ubuntu上通过官方源安装Docker社区版

Docker简介

Docker是一个开源的应用容器引擎,开发者可将应用及其依赖封装到一个镜像里面,以便于在不同Linux发行版、Windows等系统上轻易地运行程序。

本文将讲解如何在Ubuntus上安装Docker-CE,即Docker的社区开源版本。本文示例系统版本为Ubuuntu 20.04 LTS 64bit,目前最新版Docker要求最低Ubuntu 14.04以上64位系统。

第一步 删除系统上的旧版Docker

若之前安装过旧版Docker,则需先删除旧版才能安装新版,如果没有可跳过该步骤,在终端输入以下命令进行删除:

sudo apt-get remove docker docker-engine docker.io

若系统版本为Ubuntu Trusty 14.04,建议进行下一步之前先执行该命令安装所需支持:

sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

第二步 配置添加APT官方源

#更新apt源索引
sudo apt-get update

#安装以下包以支持apt包管理工具使用HTTPS源
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
#添加Docker官方GPG Key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#根据当前系统版本自动选择对应的源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

第三步 安装Docker-CE

#更新apt源索引
sudo apt-get update

#安装Docker-CE
sudo apt-get install docker-ce

第四步 验证Docker安装

通过apt完成Docker安装后,通过运行hello-world镜像来测试是否正确安装,在终端运行以下命令:

sudo docker run hello-world

执行该命令将下载一个测试镜像并在容器中运行该镜像,若成功打印出相关信息,说明Docker已经正确安装。

备注:若需要更新Docker版本,可以通过以下命令更新

sudo apt-get update
sudo apt-get upgrade docker-ce

OpenSSL 生成自签名泛域名证书

本文详细介绍了通过OpenSSL生成自签名泛域名(域名通配符)证书的方法,以用于在本地实验环境部署网站安全证书(SSL证书)。

演示环境
系统版本:Ubuntu 20.04 LTS Desktop
软件版本:OpenSSL 1.1.1.f

一. 安装OpenSSL

sudo apt update
sudo apt install openssl

二. 生成自签名CA根证书

  1. 使用RSA算法生成CA根证书私钥并使用AES256加密
    命令如下:
openssl genpkey -algorithm RSA -out cakey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048 -aes-256-cbc

参数说明:
-algorithm 密钥生成算法,通常使用RSA算法
-out [filename] 生成的密钥文件名称
-outform [PEM | DER] 文件输出格式,默认为DER
-pkeyopt [option args] 私钥生成设置,如私钥长度、加密算法

  1. 生成CA根证书申请请求(CSR)
    命令如下:
openssl req -new -key cakey.pem -out ca.csr
  1. 生成CA根证书并签名
    命令如下:
openssl x509 -req -days 3650 -in ca.csr -signkey cakey.pem -out ca.crt -extensions v3_ca

三. 生成客户端SSL证书

  1. 使用RSA算法生成客户端SSL证书私钥
openssl genpkey -algorithm RSA -out clientkey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048
  1. 生成客户端SSL证书申请请求(CSR)
openssl req -new -key clientkey.pem -out client.csr
  1. 准备客户端SSL证书签名环境
mkdir -p demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
openssl rand -hex 16 > demoCA/serial
cat >> client.ext <<EOF \
subjectAltName = DNS:*.example.com, DNS:example.com \
EOF

注:将 example.com 替换成自己的域名

  1. 生成客户端SSL证书并完成签名
openssl ca -days 365 -in client.csr -out client.crt -cert ca.crt -keyfile cakey.pem -extfile client.ext

四. 生成结果

自签名CA根证书:ca.crt; cakey.pem; ca.csr

自签名客户端证书:client.crt; clientkey.pem; client.csr

注:使用时将 clientkey.pem 和 client.crt 部署到服务器即可

五. 本地信任自签名根证书

通过上述步骤生成自签名证书并部署后,通过浏览器访问自己的网站,发现会提示证书不受信任,为了便于本地调试,可以打开 ca.crt 并选择安装证书,安装到 [受信任的根证书颁发机构] 即可。