如何生成多域名证书
第一步:生成多域名证书的CSR
方法一:用openssl生成多域名证书的CSR
How to generate a new Certificate Signing Request (CSR):
Generate a TLS private key if you don't have one:
openssl genrsa 4096 > domainkey
Generate a CSR for your the domains you want certs for:
(replace "foocom" with your domain)
Linux:
#change "/etc/ssl/opensslcnf" as needed:
# Debian: /etc/ssl/opensslcnf
# RHEL and CentOS: /etc/pki/tls/opensslcnf
# Mac OSX: /System/Library/OpenSSL/opensslcnf
openssl req -new -sha256 -key domainkey -subj "/" \
-reqexts SAN -config <(cat /etc/ssl/opensslcnf \
<(printf "[SAN]\nsubjectAltName=DNS:foocom,DNS:wwwfoocom"))
方法二:用java下的keytool生成多域名证书的CSR
keytool -genkeypair -dname "CN=examplecom" -keyalg RSA -alias example -keypass 123456 -keystore examplejks -storepass 123456 -validity 3650
keytool -certreq -keyalg RSA -keystore examplejks -storepass 123456 -alias example -ext san=dns:wwwexamplecom -file examplecsr
第二步:将CSR提交给CA去签名
第三步:将签名结果、中间证书和根证书配置到服务器上,或先导入到keystore中,再把keystore配置到服务器上。
注意:有人声称可以在dname中配置多个CN来制作多域名证书,经过测试,这个方法是行不通的,在导入签名结果后,只有第一个CN生效。
一般情况下,如果能找到可用的证书,就可以直接使用,只不过会因证书的某些信息不正确或与部署证书的主机不匹配而导致浏览器提示证书无效,但这并不影响使用。
需要手工生成证书的情况有:
找不到可用的证书
需要配置双向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) []:wwwmycompanycom ← 服务器主机名,若填写不正确,浏览器会报告证书无效,但并不影响使用
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=wwwmycompanycom/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=wwwmycompanycom/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文件(直接拷贝过去就行了)
参考:http://sinologit/p=1460
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
http://blogsinacomcn/s/blog_4fd50c390101891chtml
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
您好!
安装SSL证书主要将SSL证书配置到服务器环境。安装教程:网页链接
目前全球服务器环境主要分为4个类型:Apache、IIS、Nginx、Tomcat
不起作用,并不会被浏览器信任,反而增加了很多不安全因素。
创建自签名证书的步骤
注意:以下步骤仅用于配置内部使用或测试需要的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证书。
创建自签名证书的步骤
注意:以下步骤仅用于配置内部使用或测试需要的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元/年。
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。
申请SSL证书主要需要经过以下3个步骤:
1、制作CSR文件。
SSL证书
CSR就是Certificate Secure Request证书请求文件。这个文件是由申请人制作,在制作的同时,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要制作CSR文件,申请人可以参考WEB SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。
2、CA认证。
将CSR提交给CA,CA一般有2种认证方式:1、域名认证,一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称;2、企业文档认证,需要提供企业的营业执照。一般需要3-5个工作日。 也有需要同时认证以上2种方式的证书,叫EV证书,这种证书可以使IE7以上的浏览器地址栏变成绿色,所以认证也最严格。
3、证书的安装。
在收到CA的证书后,可以将证书部署上服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPDCONF文件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改SERVERXML;IIS需要处理挂起的请求,将CER文件导入。
SSL证书,也称为服务器SSL证书,是遵守SSL协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。
如何使用SSL:
SSL证书需要到CA机构申请,然后部署到网站的服务器端,网站就可以实现ssl加密访问了。申请SSL可以淘宝Gworg获取。
ssl证书申请的3个主要步骤
1、制作CSR文件
所谓CSR就是由申请人制作的Certificate Secure Request证书请求文件。制作过程中,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要制作CSR文件,申请人可以参考WEB SERVER的文档,一般APACHE等,使用OPENssl命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。
2、CA认证
将CSR提交给CA,CA一般有2种认证方式:
1)域名认证:一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称;
2)企业文档认证:需要提供企业的营业执照。
也有需要同时认证以上2种方式的证书,叫EV ssl证书,这种证书可以使IE7以上的浏览器地址栏变成绿色,所以认证也最严格。
3、证书安装
在收到CA的证书后,可以将证书部署上服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改httpDCONF文件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改SERVERXML;IIS需要处理挂起的请求,将CER文件导入。
0条评论