特网科技为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。

当前位置:首页 > 行业资讯 > SSL证书 > 正文内容

证书有效期天数

2025-08-22SSL证书1258

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             拨号云主机


在当今互联网安全日益受到重视的大背景下,SSL(Secure Sockets Layer)证书已成为保障网站通信安全不可或缺的一部分,虽然大多数正式的 SSL 证书需要通过受信任的 CA(Certificate Authority,证书颁发机构)申请,但在某些特定场景,如本地开发、测试环境或内网部署中,我们也可以通过 Python 自行生成自签名的 SSL 证书,这不仅能够节省成本,还能显著提高开发效率。

本文将详细介绍如何使用 Python 生成自签名 SSL 证书,并提供一个完整的示例脚本,帮助开发者快速上手。


SSL 证书的基本概念

SSL 证书用于实现 HTTPS 协议,保障客户端与服务器之间的通信加密传输,它通过加密手段确保数据在传输过程中不会被窃取或篡改,从而提升通信的安全性。

自签名证书(Self-signed Certificate)是由开发者自行生成并签名的证书,由于它没有经过第三方 CA 的认证,在浏览器中通常会提示“此连接不安全”或“证书不受信任”,自签名证书非常适合用于本地开发、测试或内部网络通信,无需额外成本即可实现加密通信。


Python 生成 SSL 证书的依赖库

Python 本身并没有直接提供生成 SSL 证书的功能,但我们可以通过调用 OpenSSL 库来完成这一任务。OpenSSL 是一个功能强大的开源安全库,广泛用于 SSL/TLS 协议的实现。

在 Python 中,我们可以使用 pyOpenSSL 这个封装库来调用 OpenSSL 提供的功能,从而生成和管理 SSL 证书。

安装依赖库

pip install pyOpenSSL

使用 Python 生成自签名 SSL 证书

以下是一个完整的示例代码,演示如何使用 Python 生成自签名 SSL 证书和私钥,并将其保存为 PEM 格式的文件。

from OpenSSL import crypto, SSL
from socket import gethostname
from time import gmtime, mktime
CERT_EXPIRE_DAYS = 365  # 证书有效期(天数)
# 创建 RSA 私钥
def createPrivateKey():
    pkey = crypto.PKey()
    pkey.generate_key(crypto.TYPE_RSA, 2048)
    return pkey
# 创建自签名证书
def createSelfSignedCert(pkey, hostname=None):
    if hostname is None:
        hostname = gethostname()
    cert = crypto.X509()
    subject = cert.get_subject()
    subject.C = "CN"               # 国家代码
    subject.ST = "Beijing"         # 省份
    subject.L = "Beijing"          # 城市
    subject.O = "MyOrganization"   # 组织名称
    subject.OU = "MyDepartment"    # 部门名称
    subject.CN = hostname          # 通用名称(域名或主机名)
    cert.set_serial_number(1000)  # 序列号
    cert.gmtime_adj_notBefore(0)  # 证书生效时间
    cert.gmtime_adj_notAfter(CERT_EXPIRE_DAYS * 24 * 60 * 60)  # 证书过期时间
    cert.set_issuer(subject)      # 自签名,颁发者与主题相同
    cert.set_pubkey(pkey)         # 设置公钥
    cert.sign(pkey, 'sha256')      # 使用私钥进行签名
    return cert
# 保存证书和私钥到文件
def saveCertAndKey(cert, pkey, cert_file='server.crt', key_file='server.key'):
    with open(cert_file, 'wt') as f:
        f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert).decode('utf-8'))
    with open(key_file, 'wt') as f:
        f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey).decode('utf-8'))
# 主程序入口
if __name__ == '__main__':
    hostname = input("请输入证书通用名(如:localhost):") or None
    private_key = createPrivateKey()
    certificate = createSelfSignedCert(private_key, hostname)
    saveCertAndKey(certificate, private_key)
    print("SSL证书和私钥已生成,保存为 server.crt 和 server.key")

生成的文件说明

运行上述脚本后,将生成两个文件:

  • server.crt:SSL 证书文件(PEM 格式)
  • server.key:私钥文件(PEM 格式)

这两个文件可用于配置本地 Web 服务器以支持 HTTPS 协议,

  • Flask:使用 ssl_context 参数加载证书
  • Django:配合 runserver_plus 插件使用
  • Nginx:在配置文件中指定 ssl_certificate 和 ssl_certificate_key

使用证书启动 HTTPS 服务(以 Flask 为例)

以下是一个使用 Flask 启动 HTTPS 服务的示例代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return "Hello, HTTPS!"
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=443, ssl_context=('server.crt', 'server.key'))

访问 https://localhost,即可看到通过 HTTPS 安全连接返回的内容,注意:首次访问时浏览器可能会提示证书不受信任,可以选择“继续访问”以继续测试。


总结与建议

通过 Python 和 pyOpenSSL 库,我们可以轻松地生成自签名 SSL 证书,为本地开发、测试环境提供安全保障,虽然这种证书在公共浏览器中不会被信任,但在内部通信、接口调试、自动化测试等场景中非常实用。

掌握如何生成和使用 SSL 证书,有助于开发者在构建安全通信机制时更加得心应手,提升项目的整体安全性和开发效率。

提示:在生产环境中,请务必使用由权威 CA 机构颁发的证书,以确保通信的可信性与安全性。


如果你正在搭建一个本地 HTTPS 服务、进行接口测试或部署内部系统,这个自签名证书生成脚本将是一个非常实用的工具,希望本文能帮助你更好地理解和应用 SSL 证书技术。

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/72117.html

分享给朋友:

“证书有效期天数” 的相关文章

笔记本电脑综合评分,性价比、性能稳定性及售后服务全面分析

在选购电脑时,性价比、性能稳定性以及售后服务是三大关键因素。性价比通常与产品的价格和功能配置相关,选择一款既能满足基本需求又不超预算的产品至关重要。稳定的性能是用户长期使用的重要保障。良好的售后服务能及时解决使用过程中遇到的问题,提升用户的满意度和信任度。在购买电脑时,应全面考虑这些因素,并结合自己...

迅雷代理设置服务器推荐

迅雷代理设置服务器推荐:选择一个可靠的代理服务器,并确保它符合迅雷的安全要求。1. 概述迅雷作为一款全球知名的下载工具,其强大的网络加速功能深受用户喜爱,为了确保安全和稳定性,用户通常会配置一些代理服务器来优化下载速度,本文将提供一份迅雷代理设置的服务器推荐列表,帮助您在享受迅雷下载的同时,避免被不...

免费代理服务器,轻松提升网络速度!

我们为你精心挑选了50多个免费的代理服务器,让你在访问网页时无需担心网速问题。这些服务器来自全球各地,确保你能够快速、稳定地连接到互联网。在这个数字化的时代,我们的生活和工作都离不开互联网,有时候,由于网络环境不佳或个人电脑配置不足,我们可能会遇到网络连接不稳定、下载速度慢等问题,这时候,一个可靠的...

如何计算租用服务器一年的费用

租用服务器一年的费用包括基础网络、操作系统安装、软件配置等。具体费用取决于服务器的型号、性能和地理位置等因素,建议参考相关服务提供商的官方价格表进行估算。在当今数字化时代,服务器作为企业运行核心基础设施不可或缺,随着科技的发展和市场竞争的加剧,选择合适的服务器租赁方案变得尤为重要,本文将详细分析租用...

通用SSL通配符证书的费用分析

通用 SSL 通配符证书是一种用于保护多个域名或子域的 SSL 证书。这些证书通常比其他类型的 SSL 证书更便宜,因为它可以覆盖一个或多个域名。这种类型的证书也有其成本和限制。它需要支付更多的费用,因为需要为每个需要使用该证书的域名或子域支付费用。通用 SSL 通配符证书只能覆盖一个或多个域名,不...

通用域名SSL证书价格分析

通用域名SSL证书的价格取决于多个因素,包括域名注册商、证书的有效期、是否包含 wildcard 访问等。通常情况下,通用域名SSL证书的价格相对较高,但价格也因提供商而异。建议在购买前咨询相关服务商以获取准确报价,并考虑使用免费或低成本的替代方案。在当前互联网环境中,通用域名SSL证书(简称GDC...