当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot中使用无密码保护(.p12)ssl证书

郑星辰
2023-03-14
openssl x509 -signkey sslcert.key  -in sslcert.csr   -req -days 365
-out sslcert.pem

另一个没有密码,使用以下命令:

openssl pkcs12  -inkey sslcert.key  -in sslcert.pem  -export -passout
pass: -nokeys -out sslcert.p12

在spring boot应用程序中,我可以使用下面的属性成功地使用带有密码的结果:

server.port=8443  
server.ssl.enabled=true 
server.ssl.key-store-type=PKCS12 
server.ssl.key-store=keys/sslcert.p12 
server.ssl.key-store-password=password

但是,当我试图使用一个没有密码是我的首选,我得到sslhandshake异常。

server.port=8443 
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=keys/sslcert.p12
javax.net.ssl.SSLHandshakeException: no cipher suites in common
    at sun.security.ssl.Handshaker.checkThrown(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.writeAppRecord(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.wrap(Unknown Source)
    at javax.net.ssl.SSLEngine.wrap(Unknown Source)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.flush(SslConnection.java:864)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:515)
    at org.eclipse.jetty.server.HttpConnection.fillRequestBuffer(HttpConnection.java:331)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:243)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:411)
    at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:305)
    at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
    at java.lang.Thread.run(Unknown Source)

共有1个答案

尹弘壮
2023-03-14

因此,在所有的研究之后,java密钥存储似乎需要一个密码。所以我不得不忽略我们没有密码的。p12。使用pem证书,我们将其转换为。p12和密码。在spring代码中,我将随机密码传递给shell脚本,该脚本使用该密码从。pem生成。p12。

然后将相同的密码从代码传递给ssl属性。

一个缺点是,每次重新启动应用程序时,我都必须从。pem重新生成。p12,但这就是我如何防止静态密码的原因。

 类似资料:
  • 我已经完成了用户注册和登录。但是我想在创建配置文件时加密密码。 这是我当前的配置 MongoDB连接 模型类:@ Document @ AllArgsConstructor @ NoArgsConstructor @ Data公共类用户{ @Id @Indexed私有字符串Id;@索引私有字符串地址;@索引私有字符串名称;@索引的私有字符串电子邮件;@索引私有字符串密码;@索引私有字符串角色;}

  • 问题内容: 如何为现有PDF设置密码? 问题答案: 您是否看过本书第12章中的EncryptionPdf示例? 就这么简单: 请注意,和是类型。您有不同的权限选项(查找以开头的常量),并且可以从不同的加密算法中进行选择。 至于参数:是现有PDF的路径。是加密的PDF的路径。很明显,您无法在读取文件时写入文件。

  • protection([string $password]); 示例一 $config = ['path' => './tests']; ​ $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); ​ $filePath = $fileObject

  • OAuth 2.0 资源所有者密码授权 允许一个客户端发送用户名和密码到令牌服务并获得一个表示该用户访问令牌。 (OAuth 2.0) 规范 建议仅对“受信任”的应用程序使用资源所有者密码授权。一般来说,当你想要验证一个用户并请求访问令牌的时候,使用交互式 OpenID Connect 流通常会更好。 不过,这个授权类型允许我们在 IdentityServer 快速入门中引入 用户 的概念,这是我

  • 问题内容: 当PHP应用程序建立数据库连接时,通常当然需要传递登录名和密码。如果我为我的应用程序使用单个最小权限登录名,则PHP需要在某个地方知道该登录名和密码。保护该密码的最佳方法是什么?似乎只在PHP代码中编写它不是一个好主意。 问题答案: 有人将其误解为关于如何在数据库中 存储 密码的问题。那是错的。它是关于如何存储使您能够 访问 数据库的密码的。 通常的解决方案是将密码从源代码移到配置文件

  • 问题内容: 我想使pdf文件受密码保护。我只是对它进行了搜索,并在下面找到了一个好的解决方案。它工作正常,但是使用下面给定的代码保护pdf后,它会清除pdf中已经存在的所有数据。 此代码使用的jar文件是: itextpdf-5.2.1.jar bcmail-jdk16-1.46.jar bcprov-jdk16-1.46.jar bctsp-jdk16-1.46.jar 保护PDF的代码: 我需