@TOC
SSL证书管理
什么是SSL证书管理
SSL证书管理(SSL Certificate Manager,SCM
)是一个SSL(Secure Socket Layer
)证书管理平台,平台联合全球知名数字证书服务机构为用户提供购买SSL证书的功能,用户也可以将本地的外部SSL证书上传到平台,实现用户对内部和外部SSL证书的统一管理。
SSL证书的作用
SSL证书是一种遵守SSL协议的服务器数字证书,由受信任的根证书颁发机构颁发。
SSL证书采用SSL协议进行通信,SSL证书部署到服务器后,服务器端的访问将启用HTTPS协议。您的网站将会通过HTTPS加密协议来传输数据,可帮助服务器端和客户端之间建立加密链接,从而保证数据传输的安全。
其主要作用如下:
- 网站身份验证,确保数据发送到正确的客户端和服务器。
- 在客户端和服务器端之间建立加密通道,保证数据在传输过程中不被窃取或篡改。
另外,SSL协议,全称为:安全套接层协议(Secure Sockets Layer
),它指定了在应用程序协议(如HTTP、Telnet、FTP
)和TCP/IP
之间提供数据安全性分层的机制,它是在传输通信协议(TCP/IP
)上实现的一种安全协议,采用公开密钥技术,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。由于SSL协议很好地解决了互联网明文传输的不安全问题,很快得到了业界的支持,并已经成为国际标准。
使用场景
用户通过华为云、阿里云、腾讯云等云服务厂商获取SSL证书,将证书部署到网站、企业应用或其他服务
部署后可以将服务使用的HTTP
协议替换成HTTPS
协议,帮助用户避免HTTP
协议的如下隐患:
- HTTP协议在客户端与服务器端之间使用明文传输数据,可以被轻松截取或篡改。
- HTTP协议不能鉴别真实与虚假网站,因此容易被欺诈、钓鱼网站利用从而导致用户信息泄露、财产损失。
具体应用在一下几方面:
-
网站可信认证:
适用于网站建设。为用户建立的网站提供基于数字证书的可信身份认证支持,避免网站被仿冒。
-
应用可信认证:
适用于云应用服务、移动应用服务。为用户云上的应用(CRM、OA、ERP等)提供基于数字证书的可信身份认证支持,避免接入非法应用。
-
应用数据传输保护:
适用于网站、应用与客户端之间的数据传输。对客户端与网站、应用之间的传输数据加密,防止数据中途被窃取,维护数据完整性,防止被篡改。
相关概念
数字证书
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。它是权威机构颁发给网站的可信凭证。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
graph LR
A[数字证书] -- 包含 --> B(公开密钥)
A -- 包含 --> C(名称)
A -- 包含 --> D(证书授权中心的数字签名)
SSL协议
SSL协议又称为“安全套接层”(Secure Sockets Layer
)协议,是通过计算机网络提供通信安全性的加密协议。可在浏览器和网站之间建立加密通道,保证信息传输过程中不被窃取、篡改。
CA认证中心
CA认证中心,又称CA机构,即证书授权中心(Certificate Authority
),或称证书授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥合法性检验的责任。
HTTPS
HTTPS是一种基于SSL协议的网站加密传输协议。网站安装SSL证书后,使用HTTPS加密协议访问,可以激活客户端浏览器到网站服务器之间的“SSL加密通道”(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。简单讲就是HTTP的安全版。
常见问题
主流数字证书有哪些格式
主流的Web服务软件,通常都基于OpenSSL
和Java
两种基础密码库。
-
Tomcat、Weblogic、JBoss
等Web
服务软件,一般使用Java提供的密码库。通过Java Development Kit(JDK)
工具包中的Keytool
工具,生成Java Keystore(JKS)
格式的证书文件。 -
Apache、Nginx
等Web
服务软件,一般使用OpenSSL
工具提供的密码库,生成PEM、KEY、CRT
等格式的证书文件。 -
IBM的Web服务产品,如
Websphere、IBM Http Server(IHS)
等,一般使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。 - 微软
Windows Server
中的Internet Information Services(IIS)
服务,使用Windows自带的证书库生成PFX格式的证书文件。
graph LR
A1[`Tomcat` `Weblogic` `JBoss`等`Web`服务软件] -- 识别证书格式 --> B(Java Keystore `JKS` 格式的证书文件)
A2[`Apache` `Nginx`等`Web`服务软件] -- 识别证书格式 --> C(`PEM` `KEY` `CRT`等格式的证书文件)
A3[IBM的Web服务产品] -- 识别证书格式 --> D(KDB格式的证书文件)
A4[微软`Windows Server`] -- 识别证书格式 --> E(PFX格式的证书文件)
查看证书文件的格式
-
您可以使用以下方法简单区分带有后缀扩展名的证书文件:
- .DER或 .CER文件:这样的证书文件是二进制格式,只含有证书信息,不包含私钥。
- .CRT文件:这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与.DER及.CER证书文件相同。
- .PEM文件:这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。.PEM文件如果只包含私钥,一般用.KEY文件代替。
- .PFX或.P12文件:这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。
-
您也可以使用记事本直接打开证书文件。如果显示的是规则的数字和字母,则表示该证书文件是文本格式。
举例:
—–BEGIN CERTIFICATE—– MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh...... —–END CERTIFICATE—–
- 如果存在“——BEGIN CERTIFICATE——”,则说明这是一个证书文件。
- 如果存在“—–BEGIN RSA PRIVATE KEY—–”,则说明这是一个私钥文件。
证书格式转换
证书格式之间是可以互相转换的
您可使用以下方式实现证书格式之间的转换:
-
将JKS格式证书《==》PFX格式
您可以使用JDK中自带的Keytool工具,将JKS格式证书文件转换成PFX格式。
例如,您可以执行以下命令将“server.jks”证书文件转换成“server.pfx”证书文件:
keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12
-
将PFX格式证书《==》JKS格式
您可以使用JDK中自带的Keytool工具,将PFX格式证书文件转换成JKS格式。
例如,您可以执行以下命令将“server.pfx”证书文件转换成“server.jks”证书文件:
keytool -importkeystore -srckeystore D:\server.pfx -destkeystore D:\server.jks -srcstoretype PKCS12 -deststoretype JKS
-
将PEM/KEY/CRT格式证书《==》PFX格式
您可以使用OpenSSL工具,将KEY格式密钥文件和CRT格式公钥文件转换成PFX格式证书文件。
例如,将您的KEY格式密钥文件(server.key)和CRT格式公钥文件(server.crt)拷贝至OpenSSL工具安装目录,使用OpenSSL工具执行以下命令将证书转换成“server.pfx”证书文件:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
-
将PFX格式证书《==》PEM/KEY/CRT格式
您可以使用OpenSSL工具,将PFX格式证书文件转化为PEM格式证书文件、KEY格式密钥文件和CRT格式公钥文件。
例如,将您的PFX格式证书文件拷贝至OpenSSL安装目录,使用OpenSSL工具执行以下命令将证书转换成“server.pem”证书文件、KEY格式密钥文件(server.key)和CRT格式公钥文件(server.crt):
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
<button><span style="color:red">须知</span></button>
此转换步骤是专用于通过OpenSSL工具生成私钥和CSR申请证书文件,并且通过此方法您还可以在获取到PEM格式证书公钥的情况下,分离出私钥。在您实际部署数字证书时,请使用通过此转换步骤分离出来的私钥和您申请得到的公钥证书匹配进行部署。