分享

一个一键即可生成SSL证书的工具,零配置,从此告别繁琐,Star 46K !

 冲天香阵 2024-05-22 发布于甘肃

相信很多运维的同学都搞过网站配置HTTPS访问。本质上HTTPS不是一种协议,而是在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全 。所以HTTPS 的安全基础是 SSL。SSL 即 Secure Sockets Layer,是网络通信提供安全及数据完整性的一种安全协议,主要在传输层与应用层之间对网络连接进行加密。而SSL证书是一种数字证书。也经常被大家通俗地称为“HTTPS证书”、“CA证书”、“服务器证书”以及“SSL”等。

网站配置HTTPS不难,但是比较那麻烦的SSL证书生成。目前SSL证书一般有如下方法获取:
  • SSL服务商购买:可以从颁发和管理SSL证书的服务商(云服务商、CA厂商)购买SSL证书。
  • 使用免费的SSL证书:一些组织提供了免费的SSL证书,但是很多时候免费证书通常需要每三个月续签一次。
  • 自签名证书:对于企业内部服务或应用网站,可以采用自签名证书(但自签名证书在浏览器中通常会触发安全警告,因为没有经过受信任的第三方认证)
所以很多时候面向内部服务或者应用网站时,我们都需要自签SSL证书,实现HTTPS访问。OpenSSL是使用最多生成SSL证书的工具之一,但是OpenSSL生成SSL证书的步骤也是相对的繁琐:
#创建私钥(key)openssl genrsa -out yourdomain.key 2048#创建证书签名请求(CSR)openssl req -new -key yourdomain.key -out yourdomain.csr#在执行上述命令时,系统会提示您输入证书的信息,例如国家名称、组织名称、信用证书名称等。#自签名SSL证书openssl x509 -req -days 365 -in yourdomain.csr -signkey yourdomain.key -out yourdomain.crt#如果需要生成CA证书(非常复杂的用途,如SSL终结),可以创建一个新的CA私钥和公钥:openssl genrsa -out ca.key 2048openssl req -new -x509 -days 365 -key ca.key -out ca.crt#使用CA签名你的SSL证书:openssl x509 -req -days 365 -in yourdomain.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.crt# 这些步骤会生成私钥、CSR和最终的SSL证书,你可以将yourdomain.crt和yourdomain.key用于你的web服务器配置SSL。
在上面过程中还包含了很多交互的过程未展示,期间需要确认输入各种信息,难搞图片
所以,今天给大家介绍的一个一键即可生成SSL证书的工具-mkcert

01 
— 

 mkcert 介绍 

一句话介绍mkcert一个生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置,支持Windows、macOS和Linux平台。

图片

🏠  项目信息

# github地址https://github.com/FiloSottile/mkcert

图片

🚀功能特性

功能特性就一个:一个命令就可以生成证书,不需要任何配置。

02

 mkcert 安装 

macOS

brew install mkcertbrew install nss # if you use Firefox# 或者sudo port selfupdatesudo port install mkcertsudo port install nss # if you use Firefox

Linux

# 先安装certutilsudo apt install libnss3-tools    -or-sudo yum install nss-tools    -or-sudo pacman -S nss    -or-sudo zypper install mozilla-nss-tools# 直接下载可执行文件curl -JLO 'https://dl./mkcert/latest?for=linux/amd64'chmod  x mkcert-v*-linux-amd64sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert

Windows

choco install mkcert# 或者scoop bucket add extrasscoop install mkcert

03

 mkcert 使用 

mkcert 生成证书的命令很简单,如下:

mkcert domain1 [domain2 [...]]

我们模拟一个HTTPS访问网站,网站地址为osm.com:

  • 创建网站工作目录

#创建网站目录mkdir -p /opt/https-nginx/certmkdir -p /opt/https-nginx/etc
  • 创建一个自签证书:

cd mkdir -p /opt/https-nginx/certmkcert myosm.com# 将会看到以下信息The certificate is at './myosm.com.pem' and the key at './myosm.com-key.pem' ✅
It will expire on 21 August 2026
  • 准备index.html文件

vim /opt/https-nginx/index.html# index.html 内容如下<!DOCTYPE html><html><head> <title>欢迎页面</title> <style> body { font-family: Arial, sans-serif; background-color: #f7f7f7; text-align: center; } #welcome { margin: 0 auto; width: 400px; padding: 20px; background-color: #fff; border: 1px solid #ddd; border-radius: 10px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } h1 { color: #555; font-size: 24px; margin-bottom: 20px; } p { color: #666; font-size: 14px; line-height: 1.5; }</style></head><body> <div id='welcome'> <h1>欢迎来到有趣的开源集市</h1> <p>分享有趣的开源产品、技术、市场趋势等内容。</p> </div></body></html>~
  • 准备nginx.conf文件

cd /opt/https-nginx/etcvim nginx.conf# nginx.conf内容如下worker_processes  auto;events {    worker_connections  1024;}http {    server {        listen 443 ssl;        server_name localhost;        charset utf-8;        ssl_certificate /etc/nginx/ssl/myosm.com.pem;        ssl_certificate_key /etc/nginx/ssl/myosm.com-key.pem;
location / { root /usr/share/nginx/html; index index.html index.htm; charset utf-8; } }}
  • 启动https应用

docker run -d -p 443:443 -v /opt/https-nginx/etc/nginx.conf:/etc/nginx/nginx.conf -v /opt/https-nginx/index.html:/usr/share/nginx/html/index.html -v /opt/https-nginx/cert/:/etc/nginx/ssl/ --name https-nginx nginx:latest
  • 访问界面

图片

这时我们发现虽然启用了https服务,并且访问也没有问题,但是浏览器会提示连接不安全。这个是因为访问的PC上没有安装好 CA 证书,需要本地访问PC安装CA证书。

  • 在部署https应用的服务器上继续执行

mkcert -instalThe local CA is already installed in the system trust store! The local CA is already installed in the Firefox and/or Chrome/Chromium trust store!# 查看CA目录mkcert -CAROOT/root/.local/share/mkcert
  • 该目录中有两个文件:rootCA-key.pem 和 rootCA.pem。将 rootCA.pem 复制到 PC 上,并将其后缀改为 .crt。

图片

双击 rootCA.crt,根据提示安装证书即可(注意选择受信任的根证书颁发机构)。

图片

  • 重启浏览器,重新访问网站,可以看到连接已经变为安全:

图片

04

 最后 

通过 mkcert 可以快速为个人或小型网站、企业内部网站等生成自签名证书。与 OpenSSL 相比,mkcert 的使用更加简单,大大简化了在内网生成SSL证书的复杂性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多