Linux自签SSL证书

ShowUNow 发布于 2024-11-08 154 次阅读


自签证书的使用场景

1. 开发和测试环境

  1. 在开发和测试阶段,尤其是需要加密的应用程序或网站时,使用自签证书可以避免支付证书费用,并且能够提供基本的加密保护。这对于本地服务器或内部网络应用尤为常见。
  2. 比如,你可能在本地开发的WordPress网站或内网应用中使用自签证书来启用HTTPS。

2. 内部使用

  • 自签证书常用于企业内部系统、内网服务或API接口的安全加密,避免因外部机构签发证书而引起的额外费用

3. 学习和培训

  • 自签证书也常用于学习SSL/TLS协议的过程,帮助开发者或管理员理解证书的工作原理、加密机制等概念。

如何使用自签证书

1.生成没有密码的私钥

sudo openssl genpkey -algorithm RSA -out /etc/ssl/private/server.key

2.生成证书签名请求 (CSR)

sudo openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/certs/server.csr

你大概会看到以下内容。

Country Name (2 letter code) [AU]:HK
State or Province Name (full name) [Some-State]:HK
Locality Name (eg, city) []:HK
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Tingyun
Organizational Unit Name (eg, section) []:Tingyun
Common Name (e.g. server FQDN or YOUR name) []:myhost
Email Address []:showyounow@tingyun.top

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

除了Common Name (e.g. server FQDN or YOUR name) []: 这一行以外其余可以随便写。这一行就是申请你对应证书的域名,域名可以填写你喜欢的,但是一定要记住(不建议填写ip地址),就比如写个myhost 也可以。但是最好不要写常见域名,以免引起混淆(比如baidu.com啥的)。

3.生成自签证书

sudo openssl x509 -req -in /etc/ssl/certs/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt -days 365

其中末尾处的365是生成的证书的有效期时长,单位为“天”。你可以自己设定一个时长,建议想长期用的话直接10年(3650)。

4.在你的另一台服务器上安装该证书

以Debian为例(Ubuntu同理),先把你生成的server.keyserver.crt 下载下来。分别在

cd /etc/ssl/   #server.key
cd /etc/ssl/certs/     #server.crt

然后上传至另一台服务器的该目录下

cd /usr/local/share/ca-certificates/

执行下面这条命令来安装该证书

sudo update-ca-certificates

为自签证书的域名添加主机主机解析记录

nano /etc/hosts

在末尾处添加

myhost ip

myhost就是你生成的自签证书对应的域名,ip换为你生成自签证书主机的ip

测试一下

ping myhost
curl https://myhost  #需要你事先已经在自签证书服务器用nginx配置好了的网站

第一条若能成功返回你自签证书服务器的ip,第二条正确的返回了网页html文件,则说明配置成功!

临时起意搭建的博客,不知道能坚持下去多久。
最后更新于 2024-11-08