如何为自己的网站生成SSL证书
1. 首先保证安装了Openssl,并且能够在在终端执行它。
2. 为你的Apache(三倍-DES加密,PEM格式) 创建一个RSA私钥。
请将你的server.key文件备份,并且记住你输入得进入密码。能够通过以下的命令察看该文件:
你也可以通过以下的命令创建一个没有加密的版本(不建议):
3. 通过RSA私钥文件来创建一个证书请求文件(PEM格式,CSR)
同样,你需要做一个备份,同时,在Openssl命令行提示输入CommonName的过程中,你必须输入一个FQDN(一个完全的有资格的域名),一个站点生成了一个CSR请求文件。可以通过以下的命令来查看CSR的详细内容:
4. 现在,你已经有了一个证书请求文件(CSR)了,你可以将此文件发送给一个认证机构来进行认证,当然会等一段时间并且花上一些钱。或者通过自己的CA认证机构来进行认证。
§ Verisign
http://digitalid.verisign.com/server/apacheNotice.htm
§ Thawte Consulting
http://www.thawte.com/certs/server/request.html
§ CertiSign Certificadora Digital Ltda.
http://www.certisign.com.br
§ IKS GmbH
http://www.iks-jena.de/produkte/ca/
§ Uptime Commerce Ltd.
http://www.uptimecommerce.com
§ BelSign NV/SA
http://www.belsign.be
通过以下的命令来察看经过认证的证书信息。
5. 现在,我们有了两个文件,server.key和server.crt ,下面就是在Apache中的httpd.conf文件配置:
SSLCertificateKeyFile /path/to/this/server.key
请求文件不再需要了。
· 使用自认证机构:
最简单的就是通过CA.pl或者是通过CA.sh来对请求文件签名。
1. 为你的CA创建一个RSA私钥(三DES加密并且是PEM格式):
备份并且记住你输入的访问密码。通过以下的命令可以查看私钥的详细信息:
你也可以创建一个非加密的PEM格式的私钥:
2. 创建一个自签名的证书文件(X.509 结构,输出为PEM格式):
通过以下的命令查询:
3. 准备一个脚本文件来对请求文件签名,Openssl不允许简单的通过openssl ca来对请求文件签名。所以一个名为sign.sh的脚本文件(mod_ssl的子目录pkg.contrib下),是用这个来进行签名,不过还是建议使 用下面的方法进行签名。
4. 现在可以用这个脚本来进行签名了(刚才生成的CA的私钥和证书必须在这个脚本的目录下):
得到一个证书文件—〉server.crt.
· 怎样更改我的私钥的 pass-phrase 密码?
只需要简单的读取它并重新写入,同时指定它的pass-phrase ,通过以下的命令完成:
$ mv server.key.new server.key
这时,你被要求两次来输入一个PEM 的pass-phrase,第一次要求输入旧密码,第二次要求输入新密码。
· 怎样可以消除Apache启动的时候的密码(pass-phrase)提示对话框:
原因是保存在你的私钥文件中的RSA私钥是一个一加密格式保存的。密码是保证能够读取这个密钥文件,如果保证你的服务器足够的安全的话,可以通过以下的命令消除:
1. 从RSA私钥中移除密码(同时保留源文件):
$ openssl rsa -in server.key.org -out server.key
2. 保证私钥只能被root用户读取:
现在这是一个没有没有加密的密钥拷贝。在使用这个密钥文件的时候,将不会再提示你输入密码,然而,如果其他任何人的到这个私钥文件,他都可以在网络上模仿你。所以一定要保证这个密钥文件只能被root用户读取。
· 怎么验证私钥文件和我的证书文件是匹配的?
私钥文件包括一系列的数字。这些数字中的两个是“来自“公钥文件的,其他的是私钥的一部分。公钥的一些bit值被嵌入到你的证书中(我们可以从证书CSR中得到),通过以下的命令来查看输出的数字,同时比较这些数字:
$ openssl rsa -noout -text -in server.key
他们必须一致,因为它们都是很长的串,所以可以通过下面的方法来查看:
$ openssl rsa -noout -modulus -in server.key | openssl md5
这时比较两个短的数字串
如何为自己的网站生成SSL证书相关推荐
- 使用JDK自带工具keytool生成ssl证书
使用JDK自带工具keytool生成ssl证书 HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP ove ...
- Nginx支持HTTPS,openssl生成SSL证书
./configure --prefix=/usr/local/nginx --with-http_ssl_module 1)创建SSL证书私钥,输入两次密码,生成文件为server.key open ...
- Nginx支持HTTPS,生成SSL证书
1.生成证书 # 1. 首先创建SSL证书私钥,期间需要输入两次用户名和密码,生成文件为blog.key: openssl genrsa -des3 -out blog.key 2048# 2. 利用 ...
- keytool生成ssl证书
使用JDK自带工具keytool生成ssl证书 HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP ove ...
- 使用OpenSSL生成SSL证书的教程
OpenSSL是一个加密软件库或工具包,它使计算机网络上的通信更加安全,可以使用其命令来创建SSL证书.OpenSSL采用apache授权许可,将工具包用于商业或非商业目的,下面就来看下CS如何利用O ...
- 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密
本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Let's Encrypt 是由 Internet Security Research Group (ISRG) 开发的一个自由.自动 ...
- 自建CA给内部网站颁发SSL证书
Windows Server - 建设篇 第二章 自建CA给内部网站颁发SSL证书 Windows Server - 建设篇 系列文章回顾 下章内容 前言 实施步骤 Openssl申请证书签发请求(带 ...
- OpenSSl生成SSL证书(支持https)
原文链接:https://blog.51cto.com/shhlamp/2120022 转载请注明出处! ----------------------------------------------- ...
- JDK自带工具keytool生成ssl证书(web服务https配置)
原文:https://www.cnblogs.com/zhangzb/p/5200418.html 前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl ...
最新文章
- Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)
- 23CSS3中的2D转换
- 一站式体验腾讯云音视频及融合通信技术
- CVTE前端笔试编程题
- linux基础-01-用户和目录、vim、归档和解压、系统启动流程、加密
- ps抠图怎么放大图片_ps中在使用抠图工具时如何用快捷键移动放大的原始图片?...
- nxp EIQ无法使用脚本导入数据集:ssl.SSLCertVerificationError
- [逆向]汇编movs,stos,rep指令讲解
- 一个春招面了20几家公司,最终选择了上岸美团,太难了!
- todd的hadoop world的ppt笔记
- ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
- 分布式卷积神经网络计算平台(通用神经网络数据处理卡 Kintex Ultra Scale 系列 KU115)
- epub格式电子书剖析之三:NC…
- Linux命令行下载大文件,下载Onedrive文件
- android+sim卡软件,超级SIM卡APP
- qt -- Q_GLOBAL_STATIC创建全局静态对象
- 曝光一下阿里的工资待遇和职位级别,原来是我们肤浅啦
- 吃豆人,一个小游戏,使用第三方图形库EasyX
- 王道论坛机试指南学习笔记(一)经典入门
- 过去半年中死亡的知名人士
热门文章
- linux_系统帮助propos/whatis/which/whereis/man/info/help...)/bashzsh/build-in command帮助/wildcard/regex
- 预警神器来了,天翼大喇叭发出河道防汛强音
- OpenCV Eigen Sophus PCL G2O
- Java中正则Matcher类的matches()、lookAt()和find()的区别
- 关于mailx邮件发不出去的解决办法
- 【python教程入门学习】Python 集成开发环境(IDE): VS Code
- 入门:链表的基本操作
- java中的变量是什么_什么是java变量,java变量是什么
- python里使用asyncore模块
- javascript开发微信小程序,怎么把手写稿子转换成word,如何快速把手稿转换为电子稿