导航:首页 > IDC知识 > openssl服务器证书

openssl服务器证书

发布时间:2021-01-14 15:08:52

1、如何用Tomcat和Openssl构建HTTPS双向认证环境

配置之前直接淘宝:Gworg,获取公网信任证书。
配置Tomcat支持HTTPS双向认证(服务器将认证客户端证书):
修改tomcat的conf目录里的server.xml文件($TOMCAT_HOME/conf/server.xml),找到类似下面内容的配置处,添加配置如下:
<Connector port="8443(这个是HTTPS端口一般是443)"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="conf/tomcat.jks(这个是证书文件)" keystorePass="密码" keystoreType="JKS"
truststoreFile="conf/truststore.jks(这个是证书文件)" truststorePass="密码" truststoreType="JKS" />

(题外话:其实HTTPS单向和双向认证配置的唯一区别是,把clientAuth改为false,去掉truststore的相关配置,就是单向HTTPS认证了,单向HTTPS用的可能更多,它主要在浏览器与f服务器交互的HTTP需要加密,而不需要验证客户端证书时使用。)

经以上配置后,重启tomcat,服务器就支持HTTPS双向认证了。

2、如何使用openssl生成证书

Step 1. Create key (password protected)

openssl genrsa -out prvtkey.pem 1024/2038 (with out password protected)

openssl genrsa -des3 -out prvtkey.pem 1024/2048 (password protected)

这个命令会生成一个1024/2048位的密钥。
Step 2. Create certification request

openssl req -new -key prvtkey.pem -out cert.csr

openssl req -new -nodes -key prvtkey.pem -out cert.csr

这个命令将会生成一个证书请求,当然,用到了前面生成的密钥prvtkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

Step 3: Send certificate request to Certification Authority (CA)

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key prvtkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

cacert.pem 生成过程见“OpenSSL建立自己的CA”

有了privkey.pem和cacert.pem文件后就可以在自己的程序中使用了,比如做一个加密通讯的服务器

-------------
OpenSSL建立自己的CA

(1) 环境准备

首先,需要准备一个目录放置CA文件,包括颁发的证书和CRL(Certificate Revoke List)。
这里我们选择目录 /var/MyCA。

然后我们在/var/MyCA下建立两个目录,certs用来保存我们的CA颁发的所有的证书的副本;private用来保存CA证书的私钥匙。

除了生成钥匙,在我们的CA体系中还需要创建三个文件。第一个文件用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01。第二个文件是一个排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空。

$ mkdir /var/MyCA
$ cd /var/MyCA
$ mkdir certs private
$ chmod g-rwx,o-rwx private
$ echo "01" > serial
$ touch index.txt

第三个文件是OpenSSL的配置文件,创建起来要棘手点。示例如下:

$ touch openssl.cnf

文件内容如下:

[ ca ]
default_ca = myca

[ myca ]
dir = /var/MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial

default_crl_days= 7
default_days = 365
default_md = md5

policy = myca_policy
x509_extensions = certificate_extensions

[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional

[ certificate_extensions ]
basicConstraints= CA:false

我们需要告诉OpenSSL配置文件的路径,有两种方法可以达成目的:通过config命令选项;通过环境变量OPENSSL_CONF。这里我们选择环境变量的方式。

$ OPENSSL_CONF=/var/MyCA/openssl.cnf"
$ export OPENSSL_CONF

(2) 生成根证书 (Root Certificate)

我们需要一个证书来为自己颁发的证书签名,这个证书可从其他CA获取,或者是自签名的根证书。这里我们生成一个自签名的根证书。

首先我们需要往配置文件里面添加一些信息,如下所示,节名和命令行工具的命令req一样。我们把所有必要的信息都写进配置,而不是在命令行输入,这是唯一指定X.509v3扩展的方式,也能让我们对如何创建根证书有个清晰的把握。

[ req ]
default_bits = 2048
default_keyfile = /var/MyCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = My Test CA
stateOrProvinceName = HZ
countryName = CN
emailAddress = [email protected]
organizationName = Root Certification Authority
[ root_ca_extensions ]
basicConstraints = CA:true

万事俱备,我们可以生成根证书了。注意设置好环境变量OPENSSL_CONF。

$ openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 356

注:“-days 356“控制有效期限为365天,默认为30天。

验证一下我们生成的文件。

$ openssl x509 -in cacert.pem -text -noout

(3) 给客户颁发证书

在给客户颁发证书之前,需要客户提供证书的基本信息。我们另外开启一个终端窗口,使用默认的OpenSSL配置文件(不要让之前的OPENSSL_CONF干扰我们,那个配置是专门用来生成根证书的)。

命令和我们生成根证书的类似,都是req,不过需要提供一些额外的信息。如下:

$ openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM

有两次提示要口令,第一次的口令用来加密私钥匙testkey.pem,第二次口令一般被OpenSSL忽略。
结果生成两个文件:testkey.pem,私钥匙;testreq.pem,请求信息,其中包括公钥匙。

我们来看看testreq.pem都有哪些信息?

$ openssl req -in testreq.pem -text -noout

现在,我们可以把testreq.pem提交给我们的CA生成证书了。
为了方便起见,我们假定testreq.pem在//var/MyCA/private/中。

$ openssl ca -in testreq.pem

有三次提示,一次是问你CA的私钥匙密码,两次是确认,输出的结果就是为客户颁发的证书。
可以通过batch选项取消命令提示,可通过notext选项取消证书的输出显示。
此外,还可以一次给多个客户颁发证书,方法是用 infiles选项替换in选项,不过这个选项必须放在最后,因为此后的任何字符均被处理为文件名称列表。

生成的证书放在certs目录,同时index.txt和serial的内容都发生了改变。
publicdoubleside=10.0;//去掉static

3、如何生成openssl证书

2. 生成Root CA私钥与证书:
2.1 先生成RootCA私钥--》使用私钥生成CSR--》生成自签名根证书。用来给二级CA证书签名。
3. 生成二级CA 私钥与证书:(假如有两个二级CA, 分别负责管理服务器端和客户端证书)
3.1 先生成ServerCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给服务器证书签名。
3.2 先生成ClientCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给客户端证书签名。
4. 生成服务器端与客户端的私钥与证书:
4.1 先生成ServerA私钥--》使用私钥生成CSR--》使用ServerCA证书签名生成三级证书。
4.2 先生成ClientA私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书。
4.3 先生成ClientB私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书
。。。。可以生成N个客户端证书证书结构:RootCA||-------ServerCA| || |--------ServerA||-------ClientCA||--------ClientA||--------ClientB||--------...|
5. 导出RootCA的根证书、服务器端和客户端的私钥和证书。
导出时都使用pem格式。
RootCA.pem-------根证书(PEM )
ServerA.pem------服务器端证书(PEM with Certificate chain)
ClientA.pem------客户端证书(PEM with Certificate chain)
ClientB.pem------客户端证书(PEM with Certificate chain)
ServerAKey.pem------服务器端私钥(PEM )
ClientAKey.pem------客户端私钥(PEM )
ClientBKey.pem------客户端私钥(PEM )
6.下面是最重要的一步:生成需要使用的JKS文件。keytool工具不能导入私钥,需要利用到weblogic 提供的一个工具,需要把weblogic.jar加到CLASSPATH。
6.1 生成服务器和客户端的信任证书库:
keytool -import -alias rootca -file RootCA.pem -keystore trust.jks
6.2 生成服务器端身份密钥库:
java utils.ImportPrivateKey -keystore servera.jks -storepass 123456 -storetype JKS -keypass 123456 -alias servera -certfile ServerA.pem -keyfile ServerAKey.pem
6.3 生成客户端身份密钥库:
java utils.ImportPrivateKey -keystore clienta.jks -storepass 123456 -storetype JKS -keypass 123456 -alias clienta -certfile ClientA.pem -keyfile ClientAKey.pem ...生成其他客户端身份密钥库
7. keytool -list -v -keystore clienta.jks (servera.jks) 可以查看其中的证书链关系。

4、openssl访问https,怎么获取证书

1、获取来SSL证书,准备域自名。
2、淘宝:Gworg 获取HTTPS证书。
3、拿到证书后,根据服务器环境安装。
4、APACHE安装SSL证书:网页链接
5、Nginx安装SSL证书:网页链接
6、如果看不到安装教程,直接叫Gworg代理安装。

5、Linux CentOS 怎么使用openssl 向windows server CA证书服务器申请web证书。求详细过程。

1、.key和.cer可以合并成pfx或p12文件
2、例如
openssl pkcs12 -export -clcerts -in a.cer -inkey a.key -out a.p12

6、openssl 自签名证书怎麽配置到windows server 2008 r2 tomcat服务器上

用php的openssl_x509_parse函数解析copy用户证书user.cer和根证书server.cer ,在比较用户证书与根证书的颁发机构等信息,如果是相同的则说明用户证书是根证书颁发,即为合法证书,反之则不合法

7、openssl生成证书需要mac地址吗

需要CA给Web服务器办法一个服务器证书,Web服务器配置一下SSL认证模式。 选择双认证,客户的使用该CA办法的签名认证证书,使用HTTPS登录即可。

8、如何利用openssl为iis生成ssl服务器证书

2.在要安加SSL服务的网站,右键打开网站属性Table. 3.选取目录安全中的服务器证书. 4.进入生成服务器证书请求的步骤中,一步步填写相应的信息。每一步相应的信息要记住,这些信息在后面要用到。二、openssl操作: 1.生成私钥。 openssl genrsa -des3 -out cakey.pem 2048 2.生成自签名根证书. openssl req -new -x509 -key cakey.pem -out cacert.pem -days 1825
此处会要求输入一些信息: Country Name: CN //两个字母的国家代号 State or Province Name: guang dong //省份名称 Locality Name: guang zhou //城市名称 Organization Name: sunrising //公司名称
Organizational Unit Name: home //部门名称 Common Name: besunny //你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址) 切记一定要和IIS服务器上填写的信息保持一致。 3.在你的openssl主目录下的bin目录下创建如下目录: demoCA
demoCA/newcerts 在demoCA目录下创建一个空的index.txt文件. 在demoCA目录创建一个serial文件,文件内容为01 . 4.把第二步的生成的cakey.pem拷贝到 demoCA/private目录下; 把cacert.pem 拷贝到demoCA目录下. 5.用CA证书cacert.pem为IIS请求certreq.txt签发证书。(将iis服务器生成的certreq.txt存放在openssl/bin下面) openssl ca -in certreq.txt -out iis.cer 6.打开iis.cer,删掉在"-- Begin Certificate --"的文本。 三.IIS服务器操作: 在该网站属性中目录安全的服务器证书 ,导入该证书。 四、测试是否SSL正常。 二、配置OpenSSL1、建立自己的CA证书在openssl的apps目录下建立自己的CA证书,例如mageCAC:/openssl098b/apps>mkdir mageCA2、生成CA密钥C:/openssl098b/apps>openssl genrsa -out mageCA/ca-key.pem 1024Genrsa[产生密钥命令] –out[密钥文件输出路径] 1024[密钥位数]Loading 'screen' into random state - doneGenerating RSA private key, 1024 bit long molus..............................++++++......++++++3、生成待签名的证书C:/openssl098b/apps>openssl req -new -out mageCA/ca-req.csr -key mageCA/ca-key.pemreq[产生证书命令]-new[新生成]-out[证书文件输出路径]-key[私钥文件路径]报错:Using configuration from /usr/local/ssl/openssl.cnfUnable to load config infounable to find 'distinguished_name' in configproblems making Certificate Request2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:出现这样的问题后,打开了apps下的req查看DIAGNOSTICS: =head1 DIAGNOSTICSThe following messages are frequently asked about:? Using configuration from /some/path/openssl.cnf? Unable to load config infoThis is followed some time later by...? unable to find 'distinguished_name' in config? problems making Certificate RequestThe first error message is the clue: it can't find the configurationfile! Certain operations (like examining a certificate request) don'tneed a configurationfile so its use isn't enforced. Generation ofcertificates or requests however does need a configurationfile. Thiscould be regarded as a bug.依然不能解决问题,在网上搜索,被告知是环境变量没有设置,于是设置系统用户变量OPENSSL_CONF为C:/openssl098b/apps/openssl_cnf。重开一个命令行窗口,要求输入一系列的信息,如国家、省、市、公司、部门、姓名、电子邮件等,命令执行完成。在设置了环境变量以后,一定要另开一个命令行窗口!一开始我就是没有另开窗口,所以后来又耽误了好多时间,不过,真是因为这个错误,我才搞清楚了openssl_cnf!至于openssl_cnf,笨笨的我还在apps下找了好半天,都没有找到这个文件,后来被高手告知就是那个名为openssl的计算机图标一样的文件,是可以用写字板打开的!狂晕!还有人说是在ssl目录下,但是我的不是!

9、openssl怎样创建个人证书

一:生成证书
目前不使用第三方权威机构的CA来认证,自己充当CA的角色。
网上下载一个openssl软件
1. 创建私钥 :
C:/OpenSSL/bin>openssl genrsa -out ca/ca-key.pem 1024
2.创建证书请求 :
C:/OpenSSL/bin>openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:root
Email Address []:sky
3.自签署证书 :
C:/OpenSSL/bin>openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
4.将证书导出成浏览器支持的.p12格式 : (不需要可以省略)
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
密码:changeit
二.生成server证书。
1.创建私钥 :
C:/OpenSSL/bin>openssl genrsa -out server/server-key.pem 1024
2.创建证书请求 :
C:/OpenSSL/bin>openssl req -new -out server/server-req.csr -key server/server-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:192.168.1.246 注释:一定要写服务器所在的ip地址
Email Address []:sky
3.自签署证书 :
C:/OpenSSL/bin>openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
4.将证书导出成浏览器支持的.p12格式 :
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
密码:changeit
三.生成client证书。
1.创建私钥 :
C:/OpenSSL/bin>openssl genrsa -out client/client-key.pem 1024
2009-7-17 22:32 回复
yakeqin
1位粉丝
2楼
2.创建证书请求 :
C:/OpenSSL/bin>openssl req -new -out client/client-req.csr -key client/client-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision
Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:sky
Email Address []:sky 注释:就是登入中心的用户(本来用户名应该是Common Name,但是中山公安的不知道为什么使用的Email Address,其他版本没有测试)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:tsing
3.自签署证书 :
C:/OpenSSL/bin>openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
4.将证书导出成浏览器支持的.p12格式 :
C:/OpenSSL/bin>openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
密码:changeit
四.根据ca证书生成jks文件
C:/Java/jdk1.5.0_09/bin > keytool -keystore C:/openssl/bin/jks/truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:/openssl/bin/ca/ca-cert.pem
五.配置tomcat ssl
修改conf/server.xml。tomcat6中多了SSLEnabled="true"属性。keystorefile, truststorefile设置为你正确的相关路径
xml 代码
tomcat 5.5的配置:
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="server.p12" keystorePass="changeit" keystoreType="PKCS12"
truststoreFile="truststore.jks" truststorePass="222222" truststoreType="JKS" />
tomcat6.0的配置:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="server.p12" keystorePass="changeit" keystoreType="PKCS12"
truststoreFile="truststore.jks" truststorePass="222222" truststoreType="JKS"/>
六.导入证书
将ca.p12,client.p12分别导入到IE中去(打开IE->;Internet选项->内容->证书)。
ca.p12导入至受信任的根证书颁发机构,client.p12导入至个人
七.验证ssl配置是否正确访问你的应用http://ip:8443/,如果配置正确的话会出现请求你数字证书的对话框。

10、openssl证书生成工具如何生成证书链

2. 生成Root CA私钥与证书:2.1 先生成RootCA私钥--》使用私钥生成CSR--》生成自签名根证书。用来给二级CA证书签名。3. 生成二级CA 私钥与证书:(假如有两个二级CA, 分别负责管理服务器端和客户端证书)3.1 先生成ServerCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给服务器证书签名。3.2 先生成ClientCA私钥--》使用私钥生成CSR--》使用根证书签名生成二级证书。用来给客户端证书签名。4. 生成服务器端与客户端的私钥与证书:4.1 先生成ServerA私钥--》使用私钥生成CSR--》使用ServerCA证书签名生成三级证书。4.2 先生成ClientA私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书。4.3 先生成ClientB私钥--》使用私钥生成CSR--》使用ClientCA证书签名生成三级证书。。。。可以生成N个客户端证书证书结构:RootCA||-------ServerCA| || |--------ServerA||-------ClientCA||--------ClientA||--------ClientB||--------...|5. 导出RootCA的根证书、服务器端和客户端的私钥和证书。导出时都使用pem格式。RootCA.pem-------根证书(PEM )ServerA.pem------服务器端证书(PEM with Certificate chain)ClientA.pem------客户端证书(PEM with Certificate chain)ClientB.pem------客户端证书(PEM with Certificate chain)ServerAKey.pem------服务器端私钥(PEM )ClientAKey.pem------客户端私钥(PEM )ClientBKey.pem------客户端私钥(PEM )6.下面是最重要的一步:生成需要使用的JKS文件。keytool工具不能导入私钥,需要利用到weblogic 提供的一个工具,需要把weblogic.jar加到CLASSPATH。6.1 生成服务器和客户端的信任证书库:keytool -import -alias rootca -file RootCA.pem -keystore trust.jks6.2 生成服务器端身份密钥库:java utils.ImportPrivateKey -keystore servera.jks -storepass 123456 -storetype JKS -keypass 123456 -alias servera -certfile ServerA.pem -keyfile ServerAKey.pem6.3 生成客户端身份密钥库:java utils.ImportPrivateKey -keystore clienta.jks -storepass 123456 -storetype JKS -keypass 123456 -alias clienta -certfile ClientA.pem -keyfile ClientAKey.pem ...生成其他客户端身份密钥库7. keytool -list -v -keystore clienta.jks (servera.jks) 可以查看其中的证书链关系。

与openssl服务器证书相关的知识