在开发网站时,如果急需一个HTTPS环境来测试支付接口,或是需要一个加密连接来保护内部管理系统的登录信息,但又不想花钱购买商业证书,自签名SSL证书就是一个适合的解决方案,它与由全球信任的机构颁发的证书不同,它的签名者不是公共认可的第三方,而是自己,因此它缺乏一定的安全性,不适合使用在正式的网站之中,下文将介绍创建自签名SSL证书的方法。
一、自签名SSL证书的局限性
1、几乎所有浏览器(Chrome、Firefox等)都会将自签名SSL证书标记为“不安全”或“无效证书”,并显示醒目的红色警告页面。这是因为浏览器不信任你这个“自封的”颁发机构。
2、仅限特定场景,绝对不适合任何公开的、面向公众的网站,否则会吓跑所有访客,并严重损害网站信誉。

二、OpenSSL创建自签名SSL证书的方法
OpenSSL是一个强大的命令行工具,在Linux、macOS和Windows上均可使用,这是最通用、最经典的方法。
第一步:生成私钥
私钥是你的核心机密文件,必须妥善保管。打开终端或命令提示符,执行以下命令,生成一个2048位的RSA私钥:
openssl genrsa-out server.key 2048
第二步:创建证书签名请求
制作CSR文件包含了你的证书信息,执行命令后,你需要交互式地填写一些信息:
openssl req-new-key server.key-out server.csr
最重要的一项是“Common Name”:对于本地开发,请填写`localhost`;对于内网访问,请填写服务器的内网IP(如`192.168.1.100`)或域名。其他信息如公司名可以按回车键跳过。
第三步:生成自签名证书
最后,使用你自己的私钥对CSR进行签名,生成有效期365天的证书:
openssl x509-req-days 365-in server.csr-signkey server.key-out server.crt
执行成功后将得到两个核心文件:**`server.key`(私钥)**和**`server.crt`(证书)。
自签名证书是开发者和系统管理员的便捷工具,完美解决了内部加密的需求,如果是正式上线的网站,需要选择由GeoTrust、Sectigo、速安信、RapidSSL等全球信任的权威CA机构颁发的SSL证书,才能建立网站的信誉度。
相关推荐:《怎么判断SSL证书是不是自签名证书》



