相信很多运维的同学都搞过网站配置HTTPS访问。本质上HTTPS不是一种协议,而是在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全 。所以HTTPS 的安全基础是 SSL。SSL 即 Secure Sockets Layer,是网络通信提供安全及数据完整性的一种安全协议,主要在传输层与应用层之间对网络连接进行加密。而SSL证书是一种数字证书。也经常被大家通俗地称为“HTTPS证书”、“CA证书”、“服务器证书”以及“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 2048 openssl 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。 ![]() mkcert 介绍一句话介绍mkcert:一个生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置,支持Windows、macOS和Linux平台。 🏠 项目信息
🚀功能特性功能特性就一个:一个命令就可以生成证书,不需要任何配置。 mkcert 安装macOSbrew install mkcert brew install nss # if you use Firefox # 或者 sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox Linux
Windowschoco install mkcert # 或者 scoop bucket add extras scoop install mkcert mkcert 使用mkcert 生成证书的命令很简单,如下:
我们模拟一个HTTPS访问网站,网站地址为osm.com:
#创建网站目录 mkdir -p /opt/https-nginx/cert mkdir -p /opt/https-nginx/etc
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> ~
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证书。
双击
最后通过 mkcert 可以快速为个人或小型网站、企业内部网站等生成自签名证书。与 OpenSSL 相比,mkcert 的使用更加简单,大大简化了在内网生成SSL证书的复杂性。 |
|