帮忙:公钥 私钥 证书链分别是哪一个文件 悬赏3元 已结束
<p>用phpcustom搭建的环境 配置证书后apache就无法启动, 怀疑是证书文件选择错误了,帮忙看一下公钥 私钥 证书链分别是哪一个文件 谢谢大家</p><p><br></p>
<p>在看书的时候涉及到了Java的安全加密技术,然后发现生成私钥公钥证书用的是keytool这个jdk自带插件</p><p> </p><p>keytool的主要用法:</p><p>keytool的几个常用的命令。</p><p>1.创建证书</p><p>2.查看证书库</p><p>3.导出证书文件</p><p>4.导入证书的信息</p><p>5.查看证书信息</p><p>6.删除密钥库中的条目</p><p>7.修改证书条目的口令</p><p> </p><p>SUN公司提供了制作证书的工具keytool。</p><p> 在JDK 以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>\bin\。</p><p> </p><p> </p><p>1.创建证书</p><p>Cmd代码 </p><ol><li>keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore " </li></ol><p></p><p>说明:</p><p>密钥库密码为testtest</p><p>证书条目密码为testtest1,若别名为test2则密码为testtest2</p><p>这样为个不乱</p><p>功能:</p><p>创建一个别名为test1的证书条目,该条目存放在名为的密钥库中,若密钥库不存在则创建。</p><p>参数说明:</p><p>-genkeypair:生成一对非对称密钥;</p><p>-alias:指定密钥对的别名,该别名是公开的;-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;</p><p>-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件</p><p>注意:</p><p>1.“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;</p><p>2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码</p><p>3.这里所说的证书库和密钥库是等同的(个人观点)</p><p>为了测试需要,这里再创建两个别名为test2和test3的证书条目在密钥库中,代码如下:</p><p>Cmd代码 </p><ol><li>keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore " </li><li>keytool -genkeypair -alias "test3" -keyalg "RSA" -keystore " </li></ol><p> </p><p>2.查看证书库</p><p>Cmd代码 </p><ol><li>keytool -list -keystore </li></ol><p></p><p>功能:</p><p>查看名为的证书库中的证书条目</p><p>3.导出到证书文件</p><p>Cmd代码 </p><ol><li>keytool -export -alias test1 -file -keystore </li></ol><p></p><p>功能:</p><p>将名为的证书库中别名为test1的证书条目导出到证书文件中</p><p>4.导入证书的信息</p><p>Cmd代码 </p><ol><li>keytool -import -keystore test_cacerts -file </li></ol><p> </p><p>功能:</p><p>将证书文件导入到名为test_cacerts的证书库中,</p><p>5.查看证书信息</p><p>Cmd代码 </p><ol><li>keytool -printcert -file " </li></ol><p> </p><p>功能:</p><p>查看证书文件的信息</p><p>6.删除密钥库中的条目</p><p>删除前查看密钥库中的证书条目</p><p>Cmd代码 </p><ol><li>keytool -list -keystore </li></ol><p>删除密钥库中别名为test2的证书条目</p><p>Cmd代码 </p><ol><li>keytool -delete -keystore -alias test2 </li></ol><p>删除后查看密钥库中的证书条目</p><p>Cmd代码 </p><ol><li>keytool -list -keystore </li></ol><p></p><p>7.修改证书条目的口令</p><p>交互的方式</p><p>Cmd代码 </p><ol><li>keytool -keypasswd -alias test1 -keystore </li></ol><p> </p><p>功能:</p><p>将密钥库中别名为test1的证书条目的密码修改为testtesttest1</p><p>非交互方式</p><p>Cmd代码 </p><ol><li>keytool -keypasswd -alias test1 -keypass testtesttest1 -new testtest1 -storepass testtest -keystore </li></ol><p>功能:</p><p>将密钥库中别名为test1的证书条目的密码修改为testtest1</p><p> </p><p>我使用的命令:</p><pre><code><ol><li><div><div></div></div><div><div>keytool -genkey -alias friend -keypass friend4life -validity 10000 -keystore ijvmkeys</div></div></li><li><div><div></div></div><div><div>赋给ijvmkeys的密码是:ijvm2ed</div></div></li><li><div><div></div></div><div><div>keytool -genkey -alias stranger -keypass stranger4life -validity 10000 -keystore ijvmkeys</div></div></li></ol></code></pre><p> </p><p>这里是将生成了两对私钥公钥和证书放在一个keystore里面,用别名区分。并且指定了keystore的展示密码为:ijvm2ed,条目的密码分别为:friend4life和stranger4life。</p><p>然后接下来使用jarsigner利用生成的秘钥证书进行签名:</p><pre><code><ol><li><div><div></div></div><div><div>jarsigner -keystore ijvmkeys -storepass ijvm2ed -keypass friend4life friend</div></div></li><li><div><div></div></div><div><div>jar signer -keystore ijvmkeys -storepass ijvm2ed -keypass stranger4life stranger</div></div></li></ol></code></pre><p> </p><p>然后使用jarsigner可以做签名校验:</p><p></p><p>将jar里的文件做修改,然后再次验证:</p><p></p><p> </p><p> </p><p>keystore文件不是证书,它可以使用命令得到证书。加密的私钥和公钥怎么得到呢?以及单独的证书怎么用Java方式得到呢?</p><p></p><p>之前一直在纠结这个问题,并且图为friend4life是我们的私钥,后面发现那只是仓库钥匙而已。</p>
你这是啥证书?SSL的?
这个还真的看不懂
你这个是类似某块链吗
不知道,找技术问问吧
这个好复杂的样子