`

使用OpenSSL工具构建自签名根证书、服务器证书和客户证书,搭建双向认证服务

 
阅读更多

Linux下的shelle脚本(注意最后一行keytool命令位于$JAVA_HOME/bin下):

md ca
md client
md server
md jks
openssl genrsa -out ca/ca-key.pem 2048
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
openssl genrsa -out server/server-key.pem 2048
openssl req -new -out server/server-req.csr -key server/server-key.pem
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
openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
openssl genrsa -out client/client-key.pem 2048
openssl req -new -out client/client-req.csr -key client/client-key.pem
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
openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
keytool -keystore jks/truststore.jks -keypass changeit -storepass 123456 -alias ca -import -trustcacerts -file ca/ca-cert.pem

tomcat的conf目录下server.xml片段:

<Connector
        SSLEnabled="true"
        clientAuth="true"
        maxThreads="150"
        port="443"
        protocol="HTTP/1.1"
        scheme="https"
        secure="true"
        sslProtocol="TLS"
        keystoreFile="conf/server.p12"
        keystorePass="123456"
        keystoreType="PKCS12"
        truststoreFile="conf/ca.p12"
        truststorePass="123456"
        truststoreType="PKCS12" />

 

参考文章:

实现Tomcat双向认证》 

 

2012.03.29 15:40补充:

不知道为什么,按上面所说配置的server.xml没有起作用,改成JKS方式的truststore才能成功,如下:

 

<Connector 
		port="8443" 
		protocol="HTTP/1.1" 
		SSLEnabled="true"
		maxThreads="150" 
		scheme="https" 
		secure="true"
		clientAuth="true" 
		sslProtocol="TLS"
		keystoreFile="/Applications/tomcat/ssl/server/server.p12"
		keystorePass="123456"
		keystoreType="PKCS12"
		truststoreFile="/Applications/tomcat/ssl/jks/truststore.jks"
		truststorePass="123456"
		truststoreType="JKS"/>
 

 

 

分享到:
评论

相关推荐

    自签署根证书、服务器证书、客户端证书

    总结来说,自签署根证书、服务器证书和客户端证书在不同场景下各有作用,虽然自签署过程相对简单,但在公开互联网上,使用权威CA签发的证书更为可靠。理解并掌握这些证书的原理和操作,对于维护网络安全至关重要。

    使用 OpenSSL 创建生成CA 证书服务器客户端证书及密钥

    本文将详细介绍如何使用 OpenSSL 创建和管理CA证书、服务器证书和客户端证书,以实现SSL单向认证和双向认证。 首先,我们来看一下如何生成 CA(证书颁发机构)证书。CA证书是信任的根,用于签署其他证书,确保网络...

    用tomcat和openSSL构建https双向认证

    #### Tomcat和Openssl构建HTTPS双向认证 ###### 选择HTTPS WEB服务器 Linux下安装OpenSSL 一、创建服务器证书、客户端证书以及CA 1、生成--服务器端--私钥和证书请求 2、生成--客户端-----私钥和证书请求 3、生成...

    用openssl命令制作生成证书和自签名

    OpenSSL 命令生成证书和自签名 OpenSSL 是一个免费的开放源代码密码学库,提供了各种加密算法和协议的实现。使用 OpenSSL 命令可以生成证书和自签名,以下是相关知识点的总结: 一、预安装准备 在开始使用 ...

    Nginx配置SSL自签名证书的方法

    4. **自签发证书**:使用`openssl x509`命令,结合之前生成的CSR和私钥,自签发一个有效期为365天的证书,`openssl x509 -req -days 365 -in domain.csr -signkey domain.key -out domain.crt`。 接下来,我们需要...

    docker构建nginx双向认证https服务器

    docker构建nginx双向认证https服务器。 openssl命令生成双向认证自签名证书。 nginx配置https(tls)服务。 浏览器访问服务器需要导入客户端证书到浏览器中。

    使用openssl生成自签名证书

    使用openssl生成IIS可用的SHA-256自签名证书 超详细步骤!

    利用openssl自制CA证书

    本教程将深入探讨如何利用开源工具openssl创建自定义的证书颁发机构(CA),并实现将CA证书安装到浏览器的受信任根证书存储区,以供自定义网络服务使用。 首先,我们需要了解openssl工具。OpenSSL是一个强大的安全...

    https双向认证证书配置详解

    ### HTTPS双向认证证书配置详解 #### 一、前置知识与概念理解 在开始具体操作之前,我们先来明确几个核心概念及其相互之间的关系。 - **DER/CER**: 这些文件通常是二进制格式,仅包含证书而不包含私钥。 - **CRT*...

    OpenSSL生成的ssl证书

    本教程将详细介绍如何使用OpenSSL在Windows环境下为Nginx服务器配置HTTPS服务,以及如何生成和管理SSL证书。 首先,了解SSL证书的作用。SSL证书通过加密通信,确保了用户与服务器之间的数据传输不被第三方窃取或...

    通过tomcat实现SSL双向认证

    使用 OpenSSL 工具生成 CA 私钥和 CA 证书请求,然后使用 CA 私钥和 CA 证书请求生成自签名 CA 证书。 Step 2:生成服务器证书 使用 OpenSSL 工具生成服务器私钥和服务器证书请求,然后使用 CA 证书签发服务器证书...

    Tomcat6和5.5配置使用SSL双向认证(使用openssl生成密钥).rar

    在这个场景中,我们将探讨如何在Tomcat 6和5.5版本中配置SSL双向认证,并使用openssl工具生成必要的密钥文件。 **一、生成CA证书** 创建一个自签名的根证书颁发机构(Root CA)是SSL双向认证的第一步。这可以通过...

    利用openssl和curl库获取https服务端证书

    如果你需要更深入地分析证书,可以使用openssl进行解码和验证,例如: ``` openssl x509 -in server.crt -text -noout ``` 这将显示证书的详细信息,如发行者、有效期、主题、公钥等。 在实际应用中,了解如何获取...

    openssl 证书生产工具

    2. **创建证书签名请求(CSR)**:接着,使用私钥生成一个证书签名请求,包含组织信息和服务器的公钥。命令如下: ``` openssl req -new -key server.key -out server.csr ``` 这会提示输入一些信息,如组织名、...

    openssl自签名证书命令

    https目前广泛流行,现提供openssl自签名证书的命令和基本验证命令。

    测试的根证书与子证书的签名应用

    1. **创建根证书**:使用命令行工具(如OpenSSL)生成自签名的根证书,设置合适的有效期、密钥长度等参数。 2. **生成子证书**:使用根证书的私钥对子证书进行签名,生成包含目标实体信息(如域名、组织名)的证书...

    openssl命令操作证书链实例

    1. **创建根CA证书**:使用`openssl req`命令生成私钥和自签名的根CA证书。这一步需要配置文件`openssl.cnf`,其中定义了证书的属性,如主体信息、有效期等。 2. **生成中间CA证书**:接着,我们会为中间CA生成私钥...

    搭建nginx+php+openssl+thinkphp时使用的证书

    3. **自签名证书**:如果使用自签名证书,可以直接用OpenSSL的`x509`命令,基于CSR和私钥生成证书。 4. **申请CA证书**:如果需要权威证书,将CSR提交给CA,完成支付和验证流程后,会收到正式的SSL证书。 5. **配置...

Global site tag (gtag.js) - Google Analytics