如何创建一个自签名的SSL证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建一个自签名的SSL证书相关的知识,希望对你有一定的参考价值。

创建自签名证书的步骤
注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。
第1步:生成私钥使用openssl工具生成一个RSA私钥

$ openssl genrsa -des3 -out server.key 2048
说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。
第2步:生成CSR(证书签名请求)生成私钥之后,便可以创建csr文件了。
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:

$ openssl req -new -key server.key -out server.csr
说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios
Organizational Unit Name (eg, section) []:info technology
Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com
Email Address []:liufan@joyios.com

第3步:删除私钥中的密码在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

第4步:生成自签名证书如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。
第5步:安装私钥和证书将私钥和证书文件复制到Apache的配置目录下即可,在Mac 10.10系统中,复制到/etc/apache2/目录中即可。

需要注意的是,在使用自签名证书时,浏览器会提示证书不受信任,如果你是对外网站使用,建议还是去CA机构申请可信的SSL证书,现在证书也很便宜,沃通CA超快SSL Pre才488元/年。
参考技术A 自签名SSL证书只适合内部使用或测试需要,网站使用自签名SSL证书存在极大的风险:

一:自签SSL证书最容易被假冒和伪造,被欺诈网站利用

自签SSL证书是可以随意签发的,不受任何监管,您可以自己签发,别人也可以自己签发。如果您的网站使用自签SSL证书,那黑客也可以伪造一张一模一样的自签证书,用在钓鱼网站上,伪造出有一样证书的假冒网银网站!

二:部署自签SSL证书的网站,浏览器会持续弹出警告

自签SSL证书是不受浏览器信任的,用户访问部署了自签SSL证书的网站时,浏览器会持续弹出安全警告,极大影响用户体验。

三:自签SSL证书最容易受到SSL中间人攻击

用户访问部署了自签SSL证书的网站,遇到浏览器警告提示时,网站通常会告知用户点击“继续浏览”,用户逐渐养成了忽略浏览器警告提示的习惯,这就给了中间人攻击可乘之机,使网站更容易受到中间人攻击。

典型的SSL中间人攻击就是中间人与用户或服务器在同一个局域网,中间人可以截获用户的数据包,包括SSL数据包,并做一个假的服务器SSL证书与用户通信,从而截获用户输入的机密信息。当网站被假的SSL证书替换时,浏览器会警告用户此证书不受信任,需要用户确认是否信任此证书,用户习惯性点击“继续浏览”,中间人攻击轻而易举的实现了。

四:自签SSL证书没有可访问的吊销列表

这也是所有自签SSL证书普遍存在的问题,做一个SSL证书并不难,使用OpenSSL几分钟就搞定,但真正让一个SSL证书发挥作用就不是那么轻松的事情了。要保证SSL证书正常工作,其中一个必备功能是要让浏览器能实时查验证书状态是否已过期、已吊销等,证书中必须带有浏览器可访问的证书吊销列表。如果浏览器无法实时查验证书吊销状态,一旦证书丢失或被盗而无法吊销,就极有可能被用于非法用途而让用户蒙受损失。此外,浏览器还会发出“吊销列表不可用,是否继续?”的安全警告,大大延长浏览器的处理时间,影响网页的流量速度。
参考技术B

您好!

快速生成方式,可以搜索一些在线生成SSL自签证书!

注意:自签名的证书容易被黑客伪造用来攻击或者劫持站点流量,如果使用自签名的SSL证书,就容易被钓鱼网站利用,这是其一。一旦你使用这种随意签发的,不受监督、信任的证书,黑客同样也会进行伪造,用在钓鱼网站从而对所有信任你网站的人造成损失。

以上是关于如何创建一个自签名的SSL证书的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个自签名的SSL证书

如何创建一个自签名的SSL证书

如何创建一个自签名的SSL证书(X509)

如何创建用于 Tomcat 的自签名 SSL 证书?

❖ 自签名 SSL 证书(self-signed SSL certificate)

如何生成自签名双向认证证书 ssl