SSL证书如何申请?
网站SSL证书如何申请?主要有下面几个步骤
1、生成证书请求文件CSR
CSR(Certificate Secure Request)就是证书请求文件,站长进行SSL证书申请的第一步就是要生成CSR证书请求文件,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要生成CSR文件,站长可以参考WEB SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。
温馨提醒:如果是申请沃通SSL证书,其数字证书商店https://buywosigncom已经支持CSR文件由系统自动生成,用户无需事先在Web服务器上生成CSR文件。详情请参考:沃通SSL证书请求文件(CSR)生成指南网页链接
2、选择CA机构申请SSL证书
CA机构(Certificate Authority ),也就是SSL证书审核签发机构,也称证书授权机构,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。如何选择CA机构呢建议考虑以下几点:
(1)全球可信,通过WebTrust国际认证。SSL证书通用性要好,支持更多的浏览器。
(2)服务响应快速,24小时提供技术支持。因为SSL证书关系到网站的安全、可信、正常的运行,关系到网站的信誉和销售,一旦出现问题必须第一时间解决,所以要求CA厂商的服务和技术支持必须24小时提供。
(3)支持中文和英文。因为国内大部分网站面向的客户群体是能看懂中文的客户群体,支持中文的SSL证书能够很好的提高客户对公司购买SSL证书保护其信息安全的认知度和公司品牌影响力。
(4)性价比要高。因为SSL证书是网站特别是电商金融网站长期需要的信息安全基础保护措施,需要一定的成本,所以性价比也是要考虑的。
3、将CSR提交给CA机构认证
CA机构一般有2种认证方式:
(1)域名认证。一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称,只显示网站域名,也就是我们经常说的域名型SSL证书。
(2)企业文档认证。需要提供企业的营业执照。
同时认证以上2种方式的证书,叫EV SSL证书,EV SSL证书可以使浏览器地址栏变成绿色,所以认证也最严格。EV SSL证书多应用于金融、电商、证券等对信息安全保护要求较高的领域。
4、获取SSL证书并安装
在收到CA机构签发的SSL证书后,将SSL证书部署到服务器上,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPDCONF文件;TOMCAT等需要将CA签发的证书CER文件导入JKS文件后,复制到服务器,然后修改SERVERXML;IIS需要处理挂起的请求,将CER文件导入。
2 生成Root CA私钥与证书:21 先生成RootCA私钥--》使用私钥生成CSR--》生成自签名根证书。用来给二级CA证书签名。3 生成二级CA 私钥与证书:(假如有两个二级CA, 分别负责管理服务器端和客户端证书)31 先生成ServerCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给服务器证书签名。32 先生成ClientCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给客户端证书签名。4 生成服务器端与客户端的私钥与证书:41 先生成ServerA私钥--》使用私钥生成CSR--》使用ServerCA证书签名生成三级证书。42 先生成ClientA私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书。43 先生成ClientB私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书。。。。可以生成N个客户端证书证书结构:RootCA||-------ServerCA| || |--------ServerA||-------ClientCA||--------ClientA||--------ClientB||--------|5 导出RootCA的根证书、服务器端和客户端的私钥和证书。导出时都使用pem格式。RootCApem-------根证书(PEM )ServerApem------服务器端证书(PEM with Certificate chain)ClientApem------客户端证书(PEM with Certificate chain)ClientBpem------客户端证书(PEM with Certificate chain)ServerAKeypem------服务器端私钥(PEM )ClientAKeypem------客户端私钥(PEM )ClientBKeypem------客户端私钥(PEM )6下面是最重要的一步:生成需要使用的JKS文件。keytool工具不能导入私钥,需要利用到weblogic 提供的一个工具,需要把weblogicjar加到CLASSPATH。61 生成服务器和客户端的信任证书库:keytool -import -alias rootca -file RootCApem -keystore trustjks62 生成服务器端身份密钥库:java utilsImportPrivateKey -keystore serverajks -storepass 123456 -storetype JKS -keypass 123456 -alias servera -certfile ServerApem -keyfile ServerAKeypem63 生成客户端身份密钥库:java utilsImportPrivateKey -keystore clientajks -storepass 123456 -storetype JKS -keypass 123456 -alias clienta -certfile ClientApem -keyfile ClientAKeypem 生成其他客户端身份密钥库7 keytool -list -v -keystore clientajks (serverajks) 可以查看其中的证书链关系。
创建自签名证书的步骤
注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。
第1步:生成私钥使用openssl工具生成一个RSA私钥
$ openssl genrsa -des3 -out serverkey 2048
说明:生成rsa私钥,des3算法,2048位强度,serverkey是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。
第2步:生成CSR(证书签名请求)生成私钥之后,便可以创建csr文件了。
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:
$ openssl req -new -key serverkey -out servercsr
说明:需要依次输入国家,地区,城市,组织,组织单位,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 (eg server FQDN or YOUR name) []:demojoyioscom
Email Address []:liufan@joyioscom
第3步:删除私钥中的密码
在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:
cp serverkey serverkeyorg
openssl rsa -in serverkeyorg -out serverkey
第4步:生成自签名证书
如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。
$ openssl x509 -req -days 365 -in servercsr -signkey serverkey -out servercrt
说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。
第5步:安装私钥和证书将私钥和证书文件复制到Apache的配置目录下即可,在Mac 1010系统中,复制到/etc/apache2/目录中即可。
需要注意的是,在使用自签名证书时,浏览器会提示证书不受信任,如果你是对外网站使用,建议还是去CA机构申请可信的SSL证书,现在证书也很便宜,沃通CA超快SSL Pre才488元/年。
您好!
一、首先在独立的服务器(云服务器、VPS),搭建好普通的网站,并且这个网站可以访问。
二、登陆淘宝搜索关键字:Gworg 获取SSL证书。
三、拿到SSL证书安装到服务器就实现HTTPS网站了。
注:虚拟主机通常都不支持。
生成CSR文件的方法:主要有两种方法
方法一、通过web服务器上进行生成CSR
这种方式需要一定的服务器操作经验,但是也可以通过网上教程按图索骥。
这种方式的好处是生成好的CSR在web服务器上安装时不会出现不匹配的情况。
方法二、可以通过在线生成的方式生成CSR(CSR在线生成工具)
这种方式好处是相对较为简单,便捷,但是缺点是有可能会出现安装证书时和web服务器不匹配,需要重新进行证书申请。
SSL证书安装配置方法教程:网页链接
解释原因:
进入Gworg获得SSL证书,并且拿到指定服务器环境证书。
确定服务器环境证书,选择指定的环境安装SSL证书说明安装。
配置SSL证书服务器防火墙要允许443端口,云服务器要在控制面板允许443端口。
解决办法:如果根据教程无法安装的,可以让Gworg进行配置。
一般情况下,如果能找到可用的证书,就可以直接使用,只不过会因证书的某些信息不正确或与部署证书的主机不匹配而导致浏览器提示证书无效,但这并不影响使用。
需要手工生成证书的情况有:
找不到可用的证书
需要配置双向SSL,但缺少客户端证书
需要对证书作特别的定制
首先,无论是在Linux下还是在Windows下的Cygwin中,进行下面的操作前都须确认已安装OpenSSL软件包。
1 创建根证书密钥文件(自己做CA)rootkey:
openssl genrsa -des3 -out rootkey
输出内容为:
[lenin@archer ~]$ openssl genrsa -des3 -out rootkey
Generating RSA private key, 512 bit long modulus
……………++++++++++++
++++++++++++
e is 65537 (0×10001)
Enter pass phrase for rootkey: ← 输入一个新密码
Verifying – Enter pass phrase for rootkey: ← 重新输入一遍密码
2 创建根证书的申请文件rootcsr:
openssl req -new -key rootkey -out rootcsr
输出内容为:
[lenin@archer ~]$ openssl req -new -key rootkey -out rootcsr
Enter pass phrase for rootkey: ← 输入前面创建的密码
You are about to be asked to enter information that will be incorporated
into your certificate request
What you are about to enter is what is called a Distinguished Name or a DN
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘’, the field will be left blank
—–
Country Name (2 letter code) [AU]:CN ← 国家代号,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音
Locality Name (eg, city) []:BeiJing ← 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []: ← 此时不输入
Email Address []:admin@mycompanycom ← 电子邮箱,可随意填
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入
3 创建一个自当前日期起为期十年的根证书rootcrt:
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey rootkey -in rootreq -out rootcrt
输出内容为:
[lenin@archer ~]$ openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey rootkey -in rootcsr -out rootcrt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp/emailAddress=admin@mycompanycom
Getting Private key
Enter pass phrase for rootkey: ← 输入前面创建的密码
4 创建服务器证书密钥serverkey:
openssl genrsa –des3 -out serverkey 2048
输出内容为:
[lenin@archer ~]$ openssl genrsa -out serverkey 2048
Generating RSA private key, 2048 bit long modulus
…+++
…………………………………………+++
e is 65537 (0×10001)
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in serverkey -out serverkey
5创建服务器证书的申请文件servercsr:
openssl req -new -key serverkey -out servercsr
输出内容为:
[lenin@archer ~]$ openssl req -new -key serverkey -out serverreq
You are about to be asked to enter information that will be incorporated
into your certificate request
What you are about to enter is what is called a Distinguished Name or a DN
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘’, the field will be left blank
—–
Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省名,拼音
Locality Name (eg, city) []:BeiJing ← 市名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []: ← 服务器主机名,若填写不正确,浏览器会报告证书无效,但并不影响使用
Email Address []:admin@mycompanycom ← 电子邮箱,可随便填
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入
6 创建自当前日期起有效期为期两年的服务器证书servercrt:
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA rootcrt -CAkey rootkey -CAserial rootsrl -CAcreateserial -in servercsr -out servercrt
输出内容为:
[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA rootcrt -CAkey rootkey -CAcreateserial -in servercsr -out servercrt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp/CN=/emailAddress=admin@mycompanycom
Getting CA Private Key
Enter pass phrase for rootkey: ← 输入前面创建的密码
7 创建客户端证书密钥文件clientkey:
openssl genrsa -des3 -out clientkey 2048
输出内容为:
[lenin@archer ~]$ openssl genrsa -des3 -out clientkey 2048
Generating RSA private key, 2048 bit long modulus
……………………………………………………………………………+++
………………………………………………………………………………………………………+++
e is 65537 (0×10001)
Enter pass phrase for clientkey: ← 输入一个新密码
Verifying – Enter pass phrase for clientkey: ← 重新输入一遍密码
8 创建客户端证书的申请文件clientcsr:
openssl req -new -key clientkey -out clientcsr
输出内容为:
[lenin@archer ~]$ openssl req -new -key clientkey -out clientcsr
Enter pass phrase for clientkey: ← 输入上一步中创建的密码
You are about to be asked to enter information that will be incorporated
into your certificate request
What you are about to enter is what is called a Distinguished Name or a DN
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘’, the field will be left blank
—–
Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing ← 省名称,拼音
Locality Name (eg, city) []:BeiJing ← 市名称,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不填
Common Name (eg, YOUR name) []:Lenin ← 自己的英文名,可以随便填
Email Address []:admin@mycompanycom ← 电子邮箱,可以随便填
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不填
An optional company name []: ← 可以不填
9 创建一个自当前日期起有效期为两年的客户端证书clientcrt:
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA rootcrt -CAkey rootkey -CAserial rootsrl -CAcreateserial -in clientcsr -out clientcrt
输出内容为:
[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA rootcrt -CAkey rootkey -CAcreateserial -in clientcsr -out clientcrt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp/CN=/emailAddress=admin@mycompanycom
Getting CA Private Key
Enter pass phrase for rootkey: ← 输入上面创建的密码
10 将客户端证书文件clientcrt和客户端证书密钥文件clientkey合并成客户端证书安装包clientpfx:
openssl pkcs12 -export -in clientcrt -inkey clientkey -out clientpfx
输出内容为:
[lenin@archer ~]$ openssl pkcs12 -export -in clientcrt -inkey clientkey -out clientpfx
Enter pass phrase for clientkey: ← 输入上面创建的密码
Enter Export Password: ← 输入一个新的密码,用作客户端证书的保护密码,在客户端安装证书时需要输入此密码
Verifying – Enter Export Password: ← 确认密码
11 保存生成的文件备用,其中servercrt和serverkey是配置单向SSL时需要使用的证书文件,clientcrt是配置双向SSL时需要使用的证书文件,clientpfx是配置双向SSL时需要客户端安装的证书文件
crt文件和key可以合到一个文件里面,把2个文件合成了一个pem文件(直接拷贝过去就行了)
参考:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
x509证书一般会用到三类文,key,csr,crt。
Key是私用密钥openssl格,通常是rsa算法。
Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。
crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。
1key的生成
opensslgenrsa -des3 -out serverkey 2048
这样是生成rsa私钥,des3算法,openssl格式,2048位强度。serverkey是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:
opensslrsa -in serverkey -out serverkey
serverkey就是没有密码的版本了。
2生成CA的crt
opensslreq -new -x509 -key serverkey -out cacrt -days3650
生成的cacrt文件是用来签署下面的servercsr文件。
3csr的生成方法
opensslreq -new -key serverkey -outservercsr
需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。
4crt生成方法
CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。
opensslx509 -req -days 3650 -in servercsr -CA cacrt -CAkey serverkey-CAcreateserial -out servercrt
输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。
最后生成了私用密钥:serverkey和自己认证的SSL证书:servercrt
证书合并:
catserverkey servercrt > serverpem
我们首先要设置 openssl 的全局配置文件
在debian下他的配置文件在 /usr/lib/ssl/opensslcnf
需要修改的内容:
具体怎么改可以自己决定
在CA目录下创建两个初始文件:
为了安全起见,修改cakeypem私钥文件权限为600或400,也可以使用子shell生成( umask 077; openssl genrsa -out private/cakeypem 2048 ),下面不再重复。
使用req命令生成自签证书:
然后会有提示,之后再出现也是这样填,不再重复
以上都是在CA服务器上做的操作,而且只需进行一次,现在转到nginx服务器上执行:
这里测试的时候CA中心与要申请证书的服务器是同一个。
另外在极少数情况下,上面的命令生成的证书不能识别,试试下面的命令:
上面签发过程其实默认使用了-cert cacertpem -keyfile cakeypem,这两个文件就是前两步生成的位于/etc/pki/CA下的根密钥和根证书。将生成的crt证书发回nginx服务器使用。
到此我们已经拥有了建立ssl安全连接所需要的所有文件,并且服务器的crt和key都位于配置的目录下,剩下的是如何使用证书的问题。
因为这是个人生成的证书,浏览器第一次可能会报错,只要添加信任之后就可以正常使用了!
0条评论