openssl生成ca证书,以及过程中遇到的问题总结

2023-11-08

相关说明:

转载于:http://www.cnblogs.com/yangyquin/p/5284530.html

在原有的基础上总结了一些本人安装过程中的一些问题


参考资料:http://blog.sina.com.cn/s/blog_7ea5cb4d0100xfce.html

    http://www.fx114.net/qa-171-1496.aspx

    http://blog.csdn.net/fengyunzhongwei/article/details/44570917

    http://blog.csdn.net/boss666666/article/details/10284649

相关软件:

2、Microsoft visual_studio_2010_professional: http://pan.baidu.com/s/1o6SsDn0
3、OpenSSL(openssl-1.0.2g): http://www.openssl.org/source/
 
安装过程:
1、安装ActivePerl软件
安装ActivePerl软件只需要一步一步进行安装即可。安装完成后用cmd命令行的形式进入到安装目录,比如我把它安装在C:\Perl64\下,进入到C:\Perl64\eg
目录,输入“perl example.pl”,如果现实:"Hello from ActivePerl!",则表示软件安装成功。 
 
 
2、设置环境变量(如果是安装版本的,则不用配置环境变量,因为在安装的时候,以及自动配置过了
安装成功后,在Path系统变量中加入“C:\Perl64\bin;”,确认即可。
 
3、安装Microsoft visual_studio_2010_professional软件
注意:这里很多安装2010版本的时候都是下载的VS的升级包,而且百度搜索默认下载的都是升级包工具,所以当你安装不成功时,看看是不是下载错了安装包
这个软件比较大,安装所需的时间也比较长,耐心点,一步一步安装即可。
安装之后配置环境变量,这一步很重要;(变量名include以及lib需要自己创建)
具体参考:http://blog.sina.com.cn/s/blog_7ea5cb4d0100xfce.html

1. 变量名:path 变量值:D:\Program Files\Microsoft Visual Studio 10.0\VC\bin;D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;

2.变量名: include 变量值:D:\Program Files\Microsoft Visual Studio 10.0\VC\include;

3.变量名:lib 变量值:D:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;


 
 
 
4、初始化编译环境
注意:这里使用的是在vs tools文件夹下的visual studio x64 Win64命令提示(2010)工具!!!
首先进入到 visual studio指定目录中,
执行命令:cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
执行命令:vcvars32.bat
后来我发现自己好像找错地方了,因为我用的是64位系统,我应该生成64位的库,但是我跑到32位下编译了。
如果你想编译64位的库,请参考:
 
 
5、执行configure
首先把openssl-1.0.2g解压放到C盘中,openssl所在目录为:C:\openssl-1.0.2g。
然后用命令进入到openssl的目录中:cd C:\openssl-1.0.2g
接着实现命令:perl Configure VC-WIN32 no-asm --prefix=C:\openssl-1.0.2g
注意:当你下载的openssl是高版本的话,如openssl-1.0.2g,需要在这里加上no-asm,表示不使用汇编,如果你不加上的话,
在执行nmake命令时会出错。但是如果下载是openssl-1.0.1c,貌似不用加no-asm也可以成功。
这里是编译32位的库,所示参数为VC-WIN32,如果你想编译64位的库,请参考: http://www.linuxidc.com/Linux/2014-10/108502.htm
 
6、执行命令:“ms\do_ms.bat”
注意:在OpenSSL根目录下执行,不要进入到ms目录中执行,否则有的文件或目录找不到
 
7、执行命令:“nmake -f ms\ntdll.mak”
注意:执行nmake时可能会出现"nmake不是内部或外部命令",出现这种问题就要看你自己的visual studio的环境变量有没有配置好
执行make进行编译,执行完后会在openssl-1.0.1g目录下生成一个out32dll文件夹,里面包含了一些静态库、动态库和.exe文件。需要花点时间 ^@^
这里可能会报错:说什么windows.h文件打不开或者找不到,这种情况你只需要进入到D:\Program Files\Microsoft Visual Studio 10.0\VC\bin里面重新执行vcvarsall.bat,然后再执行这个命令即可
 
8、测试,执行命令:nmake -f ms\ntdll.mak test
检查上一步编译是否成功,如果成功则最后显示“passed all tests”字样。
 
9、执行命令:nmake -f ms\ntdll.mak install
注意:这个时候如果报错“LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。”,你只需要到你的D:\Program Files\Microsoft Visual Studio 10.0\VC\bin里面删掉cvtres.exe这个文件即可
成功则会在C:\openssl-1.0.2g目录下生成bin、include、lib、ssl四个文件夹。
 
 
 
到此安装OpenSSL成功啦。下面介绍一下如何生成一个根证书。
====================================================================
1、首先新建几个文件夹,比如我在C盘下新建demos文件夹:C:\demos
在demos文件夹里面再新建两个文件夹:C:\demos\certs,和C:\demos\private,certs文件夹主要存放生成的证书,private主要存放密钥。
打开OpenSSL命令行工具:C:\openssl-1.0.2g\bin\openssl.exe
openssl的命令有很多,在生成证书之前可以先了解openssl的命令。
 
2、生成名为yang的密钥,生成过程中需要输入你的密码。
命令:genrsa -aes256 -out C:\demos\private\yang.key.pem
 
生成的密钥文件:
 
 
3、生成根证书签发申请。
在创建的过程中会输入刚创建密钥用的密码,还需要一些信息,比如国家、省份、城市、组织、部门、姓名、邮件等等。
命令:req -new -key C:\demos\private\yang.key.pem -out C:\demos\private\yang_ca.csr
 
生成的文件:
 
4、签发根证书。
这一步的工作本来应该由第三方权威机构签发的,但是我们这里只是生成一个自签名的证书,用来玩的,不需要别人的认可,需要自己给自己签发啦。
命令:x509 -req -days 10000 -sha1 -signkey C:\demos\private\yang.key.pem -in C:\demos\private\yang_ca.csr -out certs/yang_ca.cer
 
生成的文件:
 
这时根证书已经生成完毕,直接打开就行啦~~
 
5、如果想将证书信息改为可信任的,那点击“安装证书”按钮,选择”存储本地计算机“ -> 选择证书存储为“受信任的根证书颁发机构” ,后面的步骤确定即可。 
 
    
 
6、关闭证书,再重新打开,即可看到变成可信任的证书了。
 
 
所有步骤到此结束了~~~~

欢迎大家进群交流

QQ群:719431817

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openssl生成ca证书,以及过程中遇到的问题总结 的相关文章

  • curl: (60) SSL 证书问题:无法获取本地颁发者证书

    root sclrdev home sclr certs FreshCerts curl ftp ssl verbose ftp abc u trup trup cacert etc ssl certs ca certificates cr
  • BIO中的B代表什么?

    OpenSSL 使用称为 I O 抽象BIO http www openssl org docs crypto bio html 但我在文档中找不到任何地方说明 B 代表什么 IO 显然是输入 输出 各种网站表明 B 代表basic or
  • 如何 grep 或搜索 OpenSSL 的 .jar 文件?

    我有一个 Android 应用程序正在使用一些 jar 文件 库 我的应用程序因 OpenSSL 漏洞而被拒绝 但找不到包含 OpenSSL 的 jar 文件 如何在我的 MAC 上搜索 Openssl 的 jar 文件 grep Open
  • 超线程性能比较

    我写了一个项目 其中使用了一些基本功能openssl例如RAND bytes and des ecb encrypt 我的电脑有 i7 2600 4 核和 8 个逻辑 CPU 当我用 4 个线程运行我的项目时 将花费 10 秒 当我用 8
  • 帮助构建 boost asio ssl 示例

    我一直在研究 asio ssl 示例 链接如下 尽管尽了最大努力 我还是无法将 openssl 链接到 boost 示例中 ld 的输出是 ld 缺少 libssl a 中的符号 我无法弄清楚的是 我发现 libssl a 中带有 nm 的
  • 如何从 openssl 生成的密钥生成 X.509 证书

    我有一个在 ec2 实例上运行的 Web 服务器 该实例在内部调用使用 Spring Boot 构建的 REST 服务器 现在 我正在尝试让此 REST 服务器在 SSL 下运行 这是我到目前为止所做的 1 使用此命令创建 CSR 和密钥文
  • 仅使用 RSA 和 AES 构建 openssl

    我正在一个项目中使用 libcrypto a OpenSSL 默认情况下 所有算法都在 libcrypto a 下可用 对于该项目 我只需要 RSA AES 和 SHA 如何仅使用这些算法构建 libcrypto a 如果您通过运行以下命令
  • Npm 不工作(openSSL 配置错误 windows10x64)

    每当我在 powershell 中尝试 npm 命令时 都会收到此错误 node v v17 1 0 npm v OpenSSL configuration error 74240000 error 80000003 system libr
  • 为什么 Nginx 以相反的顺序提供客户端 SSL DN?

    我很好奇为什么某些 Web 服务器 例如 Nginx 以相反的顺序提供客户端 SSL DN Web 应用程序将 DN 发布到 Java Web 服务 该服务尝试创建 Javajavax naming ldap LdapName http d
  • openssl-使用密钥和 IV 解密 Base64 字符串

    我正在尝试解密已在 openssl 中使用 aes256 加密的 base64 字符串 我获得了会话密钥和 IV 它们是用我的密钥加密的 我将它们转换为十六进制 以便可以使用以下 openssl 命令 openssl enc d aes25
  • openssl_random_pseudo_bytes() 很慢(PHP)

    我在 PHP 中使用 opennssl random pseudo bytes 它的执行速度非常慢 我的应用程序经常超时 引发执行时间限制错误 OpenSSL random 这么慢有什么特殊原因吗 我目前在我的开发机器上使用 Windows
  • 为什么 PHP 中加密的内容与 Ruby 中加密的相同字符串不匹配?

    这是我的要求 我需要使用 AES 加密 包括随机 iv 对 PHP 中的字符串进行加密 对其进行 Base64 编码 然后对其进行 URL 编码 以便可以将其作为 URL 参数传递 我试图在 PHP 和 Ruby 中获得相同的结果 但我无法
  • Mechanize 收到“Errno::ECONNRESET:连接由对等方重置 - SSL_connect”

    我无法让 Mechanize 加载曾经正常工作的页面 它确实失败了 并显示Errno ECONNRESET Connection reset by peer SSL connect信息 关于我应该尝试什么或我应该查看的细节有什么建议吗 请参
  • 在 PHP 中生成 SAN CSR

    我目前正在编写一个脚本 通过 Web 界面生成 CSR 以便提交以生成证书 我当前的问题是我想生成 SAN 证书 但找不到有关如何添加subjectAlternateName到生成的证书请求中 我当前的代码是 private key ope
  • 无法验证 SSL 证书

    我想做的事 与以下人员保持干净的联系openssl connect到远程站点 网站似乎是自签名的 What I m getting CONNECTED 00000003 depth 0 CN DC01 home pri verify err
  • C - 如何正确使用 OpenSSL 的 BIO_write()

    我是 OpenSSL 新手 我知道 BIO write BIO b const void buf int len 需要在循环中调用 但我不完全确定我是否正确使用它 我写了一个这样的函数 int32 t SendPacket BIO cons
  • 使用openssl从服务器获取证书

    我正在尝试获取远程服务器的证书 然后可以将其添加到我的密钥库中并在我的 Java 应用程序中使用 一位高级开发人员 正在度假 告诉我我可以运行这个 openssl s client connect host host 9999 获取转储的原
  • OpenSSL的EVP是什么意思?

    OpenSSL的EVP是什么意思 我知道它是 OpenSSL 中的一个更高级别的加密接口库 但是字母 E V P 代表什么 谢谢 陈兹 有趣的问题 我不确定 但是 ifndefevp h 顶部是 ifndef HEADER ENVELOPE
  • 使用 rbenv 在 MacOS 上安装 Ruby 2.6.0 失败

    我在 Mojave 上有一台 Mac 它无法安装开发所需的一些基本内容 rbenv install 2 6 0 Downloading openssl 1 1 1d tar gz gt https dqw8nmjcqpjn7 cloudfr
  • 使用仅具有 CA 证书且无密钥库的 SSLContext

    我需要设置一个javax net ssl SSLContext用于 Jersey Client 应用程序 我想要做的就是接受自定义根 ca 证书的上下文 真的没有办法生成密钥库文件并导入 CA 证书吗 确实没有办法生成密钥库 文件并导入CA

随机推荐