https证书生成方法,怎么生成https证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https证书生成方法,怎么生成https证书相关的知识,希望对你有一定的参考价值。

https证书(也称为ssl证书)是需要去正规的CA机构进行申请的,步骤如下:
第一步:将CSR提交到代理商
CSR(Certificate Signing Request)文件必须由用户自己生成,也可以利用在线CSR生成工具。选择要申请的产品,提交一个新的订单,并将制作好的CSR文件提交。
第二步 资料提交到CA
当收到您的订单和CSR后,如果是域名验证型证书(DV SSL证书),在域名验证之后10分钟左右就可颁发证书,若是其他类型证书则是需要通过CA机构进行验证之后才可颁发。
第三步 发送验证邮件到管理员邮箱
权威CA机构获得资料后,将发送一封确认信到管理员邮箱,信中将包含一个 对应的链接过去。每一个订单,都有一个唯一的PIN以做验证用。
第四步 邮件验证
点击确认信中的链接,可以访问到CA机构验证网站,在验证网站,可以看到该订单的申请资料,然后点击”I Approve”完成邮件验证。
第五步 颁发证书
在用户完成邮件验证之后,CA机构会将证书通过邮件方式发送到申请人自己的邮箱,当用户收到证书后直接安装就可以了。若安装存在问题,我们是提供免费证书安装服务的。
参考技术A 需要手工生成证书的情况有:

找不到可用的证书
需要配置双向SSL,但缺少客户端证书
需要对证书作特别的定制
首先,无论是在Linux下还是在Windows下的Cygwin中,进行下面的操作前都须确认已安装OpenSSL软件包。

1. 创建根证书密钥文件(自己做CA)root.key:

openssl genrsa -des3 -out root.key
输出内容为:
[lenin@archer ~]$ openssl genrsa -des3 -out root.key
Generating RSA private key, 512 bit long modulus
……………..++++++++++++
..++++++++++++
e is 65537 (0×10001)
Enter pass phrase for root.key: ← 输入一个新密码
Verifying – Enter pass phrase for root.key: ← 重新输入一遍密码

2. 创建根证书的申请文件root.csr:

openssl req -new -key root.key -out root.csr

输出内容为:

[lenin@archer ~]$ openssl req -new -key root.key -out root.csr
Enter pass phrase for root.key: ← 输入前面创建的密码
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]:SiChuan ← 省的全名,拼音
Locality Name (eg, city) []:SiChuan ← 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []: ← 此时不输入
Email Address []:admin@mycompany.com ← 电子邮箱,可随意填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入

3. 创建一个自当前日期起为期十年的根证书root.crt:

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
Signature ok
subject=/C=CN/ST=SiChuan/L=SiChuan/O=MyCompany Corp./emailAddress=admin@mycompany.com
Getting Private key
Enter pass phrase for root.key: ← 输入前面创建的密码

4. 创建服务器证书密钥server.key:

openssl genrsa –des3 -out server.key 2048

输出内容为:
[lenin@archer ~]$ openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
….+++
…………………………………………..+++
e is 65537 (0×10001)

运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key

5.创建服务器证书的申请文件server.csr:

openssl req -new -key server.key -out server.csr

输出内容为:

[lenin@archer ~]$ openssl req -new -key server.key -out server.req
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]:SiChuan ← 省名,拼音
Locality Name (eg, city) []:SiChuan ← 市名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不输入
Common Name (eg, YOUR name) []:www.mycompany.com ← 服务器主机名,若填写不正确,浏览器会报告证书无效,但并不影响使用
Email Address []:admin@mycompany.com ← 电子邮箱,可随便填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不输入
An optional company name []: ← 可以不输入

6. 创建自当前日期起有效期为期两年的服务器证书server.crt:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in server.csr -out server.crt
Signature ok
subject=/C=CN/ST=SiChuan/L=SiChuan/O=MyCompany Corp./CN=www.mycompany.com/emailAddress=admin@mycompany.com
Getting CA Private Key
Enter pass phrase for root.key: ← 输入前面创建的密码

7. 创建客户端证书密钥文件client.key:

openssl genrsa -des3 -out client.key 2048

输出内容为:

[lenin@archer ~]$ openssl genrsa -des3 -out client.key 2048
Generating RSA private key, 2048 bit long modulus
……………………………………………………………………………..+++
……………………………………………………………………………………………………….+++
e is 65537 (0×10001)
Enter pass phrase for client.key: ← 输入一个新密码
Verifying – Enter pass phrase for client.key: ← 重新输入一遍密码

8. 创建客户端证书的申请文件client.csr:

openssl req -new -key client.key -out client.csr

输出内容为:

[lenin@archer ~]$ openssl req -new -key client.key -out client.csr
Enter pass phrase for client.key: ← 输入上一步中创建的密码
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]:SiChuan ← 省名称,拼音
Locality Name (eg, city) []:SiChuan ← 市名称,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
Organizational Unit Name (eg, section) []: ← 可以不填
Common Name (eg, YOUR name) []:Lenin ← 自己的英文名,可以随便填
Email Address []:admin@mycompany.com ← 电子邮箱,可以随便填

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: ← 可以不填
An optional company name []: ← 可以不填

9. 创建一个自当前日期起有效期为两年的客户端证书client.crt:

openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt

输出内容为:

[lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in client.csr -out client.crt
Signature ok
subject=/C=CN/ST=SiChuan/L=SiChuan/O=MyCompany Corp./CN=www.mycompany.com/emailAddress=admin@mycompany.com
Getting CA Private Key
Enter pass phrase for root.key: ← 输入上面创建的密码

10. 将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx:

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

输出内容为:

[lenin@archer ~]$ openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
Enter pass phrase for client.key: ← 输入上面创建的密码
Enter Export Password: ← 输入一个新的密码,用作客户端证书的保护密码,在客户端安装证书时需要输入此密码
Verifying – Enter Export Password: ← 确认密码

11. 保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件

.crt文件和.key可以合到一个文件里面,把2个文件合成了一个.pem文件(直接拷贝过去就行了)
参考技术B HTTPS证书实际就是SSL证书,具体生成办法。
1、需要HTTPS证书的网站地址确定好。
2、GWORG
3、去网站地址注册商去操作添加解析。
4、获得HTTPS证书文件配置到服务器。

HTTPS证书生成方法,也适用于APP

步骤:

一、登录服务器,创建ioscert目录

cd ~/servers/APP

mkdir ioscert

 

二、cdioscert目录下,执行以下命令:

1openssl genrsa -out server.key 1024

2openssl req -new -out server.csr -key server.key  

Common Name的值必须是你的服务器iporganizationName要记得填写内容,这个值要与第4步中organizationName值一致。

3openssl genrsa  -out ca.key 1024

4openssl req -new -x509 -days 365 -key ca.key -out ca.crt

填写的内容和第二步一致即可,其中organizationName必须和第二步的一致

5、创建CA目录,在CA目录下创建文件index.txtserial文件以及newcerts目录,serial内容为01index.txt为空。

6openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

如果在执行第6步的时候出现如下问题(当前系统用户非root,且操作权限不足时)

NVMBD1BJI090V01-esapp%openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key 

Using configuration from /etc/pki/tls/openssl.cnf

I am unable to access the /etc/pki/CA/newcerts directory

/etc/pki/CA/newcerts: Permission denied

 

解决办法:

1./etc/pki/tls/openssl.cnf 拷贝至待生成CA文件的路径下,例如/home/esapp/servers/APP/ioscert/

2.修改openssl.cnf文件,将[ CA_default ]dir属性改为CA文件路径下的CA路径,例如/home/esapp/servers/APP/ioscert/CA

3.CA文件的路径下执行命令,openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

7openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12  密码使用上面输入的密码“123456”。

8java -cp jetty5.1.10.jar org.mortbay.util.PKCS12Import server.p12 server.jks

如果出现错误:说明你的jetty-5.1.10.jar没有复制到命令行的当前文件夹下。

 

三、修改server.xml文件,设置portserver.p12server.jks的路径

添加线程管理

<Executor name="webcontainerThreadPoolapp" namePrefix="WebContainer-" maxThreads="50" minSpareThreads="40" />

追加:

<Connector executor="webcontainerThreadPoolapp" port="9999" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" enableLookups="false" backlog="2000" acceptCount="4096" server="mapp" SSLEnabled="true" scheme="https" secure="true" useBodyEncodingForURI="true" maxHttpHeaderSize="16384" keystoreFile="/disk2/appweb/servers/APP/ioscert/server.p12" keystorePass="123456" keystoreType="PKCS12" clientAuth="false" sslProtocol="TLS" truststoreFile="/disk2/appweb/servers/APP/ioscert/server.jks" truststorePass="123456" truststoreType="JKS" />

 

四、在Ipad上安装ca.crt

可通过email方式,把ca.crt通过A email发到B email,然后在ipad上登录B email,点击附件中的ca.crt即可安装

以上是关于https证书生成方法,怎么生成https证书的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS证书是怎么申请的

jdk生成https证书

https如何生成密钥

sh 笔记:OpenSSL生成「自签名」证书,配置Nodejs本地HTTPS服务 - 12.不需要单独创建文件,重新生成证书的方法

HTTPS证书生成方法,也适用于APP

https怎么获得证书,网站https访问证明弄?