微信公众号好看文章怎么做的好看?

小雨yyy 的BLOG
用户名:小雨yyy
文章数:43
访问量:6452
注册日期:
阅读量:5863
阅读量:12276
阅读量:396847
阅读量:1087374
51CTO推荐博文
openssl什么是openssl:OpenSSL是套开放源代码的SSL套件,其函式库是以C语言所写成,实作了基本的传输层资料加密功能。此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA公司任职而停止开发。其实openssl,就是是一个加密套件,可以实现各种加密。用的最多的应该就是https和CA认证。加密分类:1,对称加密: & &常用算法:DES(56bits), 3DES, AES(128bits), Blowfish & & & & & & &Twofish, IDEA, RC6, CAST5, Serpent & &优点:加密速度快,保证数据私密性 & &缺点:不能实现身份认证,不能实现密钥交换,不能保证数据完整性 & &有个特别的DH算法能实现密钥交换(有的说是非对称加密里的,原理 & &就是应用离散对数上的离散指数难计算。加密双方保留自己的指数,只传送结果,然后用各自 & &的指数进行运算,得到一个相同的密钥)2,非对称加密: & &加密算法:RSA, EIGamal, DSA & &优点:能进行身份认证,能实现密钥交换,保证数据私密性 & &缺点:加密速度慢,不能保证数据完整性3,单向加密: & &加密算法:MD5, SHA1, SHA512, CRC-32 & &优点:保证数据完整性,速度快 & &缺点:不能保证私密性,不能进行身份认证具体用法:加密一个文件1.用opensssl对称加密一个文件加密:# openssl enc -rc4 -in /tmp/isolinux.cfg -out /tmp/isolinux.enc解密:# openssl enc -d -rc4 -in /tmp/isolinux.enc -out 123.txtenc:对称加密-rc4 :算法-in/-out:加密前后的文件2.单向加密(就是提取特码)# openssl dgst -md5 ./123.txt这个很简单,和md5sum一样3.非对称加密应用:数字签名(私钥加密,公钥解密) & & &密钥交换,身份认证关于https &出自维基百科HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的保护。HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当: & &用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构; & &用户相信证书颁发机构仅信任合法的网站; & &被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告); & &该证书正确地验证了被访问的网站(如,访问https://example时收到了给“Example Inc.”而不是其它组织的证书); & &或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。-------------------------https的实现建立连接1,tcp三次握手2,服务端把自己的公钥给客户端(也就是证书)3,客户端拿着公钥去找CA,4,CA把自己的证书发给客户端5,客户端通过自己的证书表比对CA的证书,6,如果比对成功,继续连接,CA告诉客户端,服务端的证书是否可信7,如果可信客户端把自己的公钥给服务端()---数据传输传输1,数据提取特征码(单向加密,保证数据完整性)2,用自己的的私钥加密特征码(保证特征码是自己生成的,即这个数据就是我发的)3,用对称加密数据,会生成一个口令(保证数据私密性)4,用对方公钥加密口令(保证口令安全)接收1,用自己的私钥解密(拿到口令)2,用口令解密数据(得到明文)3,用对方的公钥解密特征码(保证数据是对方发的)4,用特征码校验数据的完整性---------用openssl建立私有CA配置文件:/etc/pki/fCA的工作目录1,生成私钥# openssl genrsa -out /etc/pki/CA/private/cakey.pemgenrsa:生成私钥2,给自己发证书# openssl req -new -x509 -key private/cakey.pem -out cacert.pemreq:证书申请-x509:证书格式-new:就是新建3,创建需要的文件:# touch index.txt serial crlnumber这几个文件是配置文件中写到的,配置文件有写用途3,给别人签证书# openssl ca -in /tmp/http.crs -out http.crt4,吊销证书# openssl ca -revoke http.crt----------------作为客户端申请证书1,生成私钥(公私钥成对出现的,公钥是从私钥提取的)# openssl genrsa -out http.key2,制作证书申请# openssl req -new &-key http.key -out http.crs 填写好自己的信息发给CA总结:genrsa:生成私钥req:证书申请ca:签证书/吊销证书-------------------------基于密钥认证的登录1,生成密钥# ssh-keygen 默认是rsa2,把公钥拷贝到远端# ssh-copy-id root@192.168.100.1013,不用密码登录了总结:如有错误,还请帮忙提出,谢谢。。。
了这篇文章
类别:未分类┆阅读(0)┆评论(0)openssl生成https证书_PHP教程-织梦者
当前位置:&>&&>& > openssl生成https证书
openssl生成https证书
openssl生成https证书
本文主要介绍在Linux环境下通过openssl生成自己的ssl证书,并nginx服务器启用https。我对证书的了解也不是很多,从网上搜罗一些资料,并在CentOS上成功搭建HTTPS服务器,通过本文整理如下:
/etc/pki/CA/index.txt 跟踪已颁发的证书,初始为空。注意是0字节,不然会报出一个错误。
wrong number of fields on line 1 (looking for field 6, got 1, '' left)
/etc/pki/CA/serial文件,最后一次颁发的证书的序列号,初始值01,也可以是00等其它值。
切换工作路径为/etc/pki/tls方便openssl文件引入。
生成服务器端的私钥 key文件
openssl genrsa -des3 -out server.key 1024
在/etc/pki/tls目录下生成了server.key文件。
生成CSR文件
openssl req -new -key server.key -out server.csr -f
在/etc/pki/tls目录下生成了server.csr文件。
自己生成CA的签名
openssl req -new -x509 -keyout ca.key -out ca.crt -f
生成两个文件 ca.key 和ca.crt文件,后面签名用。
CA签名CSR文件形成证书 crt文件
用上一步生成的ca.key和ca.crt签名第二步生成了csr文件。
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -f
生成了server.crt文件。
合并证书文件(crt)和私钥文件(key)
cat server.crt server.key & server.pem
搭建https服务器
修改nginx配置文件如下:
ssl_certificate
/etc/pki/tls/server.
ssl_certificate_key
/etc/pki/tls/server.
ssl_session_timeout
ssl_protocols
SSLv2 SSLv3 TLSv1;
ssl_ciphers
HIGH:!aNULL:!MD5;
ssl_prefer_server_
location / {
然后通过输入 https://localhost就可以查看效果了。
如果想要php支持https,只要加入解析php的配置即可:
location ~ \.php$ {
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
fastcgi_param
SCRIPT_FILENAME $document_root$fastcgi_script_
fastcgi_param HTTPS # 多加这一句
以上就是openssl生成https证书的全文介绍,希望对您学习和使用php有所帮助.
这些内容可能对你也有帮助
更多可查看PHP教程列表页。
猜您也会喜欢这些文章我们在访问https的时候,对于有的程序需要提供访问网站的CA证书,这个时候客户端才能访问系统网站,比如使用TIBCO Business Workspace 5 HTTP send request activty 去访问Google API提供的REST 服务的时候,就需要我们提供网站的CA证书。一般来说,用两种比较常用的方式,第一种方式是通过浏览器访问这个网站,然后在网站的地址栏的右边有一个锁,可以通过点击这个锁来查看和导入证书,这种方式只适合那种网站可以在浏览器里面打开的应用(比如IE);第二种方式,也就说今天会介绍的方式,直接用OpenSSL的命名。本文以访问&&为例子
步骤1. 从下面的网站下载OpenSSL工具,并解压缩,然后找bin目录,在命令行窗口打开openssl.exe、
Window下的OpenSSL工具可以从下面的地址下载
/p/openssl-for-windows/downloads/detail?name=openssl-0.9.8k_X64.zip&can=2&q=
步骤2. 在这个窗口中输入&&&s_client -showcerts -connect :443
将会看到类似下面的窗体
步骤3。把这些cmd窗口中的所有字符拷贝到一个临时文件里面,通过单击鼠标右键,选择 “Select ALL”(全选),并单击鼠标,
这样被选中的内容会自动复制到黏贴板
步骤4. 把在上面步骤复制的内容保存到一个文件中,在当前的当前的文件窗体中,我们将看到类似于Certificate Chain或者
BEGIN CERTIFICATE的关键字
步骤5 在----Begin CERTIFICATE------ 和&----END&CERTIFICATE------ 就是其中的一个证书之一
把----Begin CERTIFICATE------ 和&----END&&CERTIFICATE------ 之间的字符串拷贝并复制到一个文本文件中
并根据证书的名字命名,后缀名可以为 &.cer&, 比如,当前的证书的名字,我们可以在----Begin CERTIFICATE------&
类&#20284; CN=*.,&*.就是证书的名字。所以当前证书可以命名为<.cer
步骤6. 类&#20284;以步骤5,可以把其他的证书也单独拷贝到一个文件里面,并改成后缀名为当前证书
的名字&#43;.cer 的后缀名。
步骤7. 打开相应的证书,我们以<.cer为例,我们将看到下面的证书信息。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:342次
排名:千里之外apache下如何开启ssl即https访问
apache下如何开启ssl即https访问
【沃通(WoSign)--中国最大的自主品牌数字证书颁发机构(CA),SSL证书中国市场占有率第一;付费SSL证书性价比高,免费SSL证书永久免费,替换成沃通SSL证书买一送一,0门槛招SSL证书代理!】
openssl Windows下已编译好的命令行程序:
http://downloads.sourceforge.net/gnuwin32/openssl-0.9.8h-1-bin.zip
lamp开启ssl
首先需要安装openssl和apache的ssl模块,执行:
yum install openssl mod_ssl -y
即可,接下来的配置方法和以下内容类似
wamp开启SSL
1.#修改httpd.conf文件
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
#去掉上面两行前的"#"
2.#修改conf/extra/httpd-ssl.conf
SSLCertificateFile "D:/wamp/Apache2/bin/server.crt"
SSLCertificateKeyFile "D:/wamp/Apache2/bin/server.key"
3.#修改为你生成证书的文件位置
DocumentRoot "E:/www" #修改 DocumentRoot的值与httpd.conf文件的DocumentRoot保持一致.
4.#解决APACHE无法启动
设置配置文件(httpd-ssl.conf conf/extra目录中)
SSLMutex "file:D:/ProgramFiles2003/wamp/wamp/Apache2/logs/ssl_mutex"
修改为68: SSLMutex default
5.#把httpd-ssl.conf文件中所有的apache的路径替换为你的APACHE的路径
#到此配置文件修改完毕
二,证书生成的方法
windows的——
#命令行中进入apache/bin目录下执行如下:
openssl req -config ../f -new -out server.csr -keyout server.pem
其中f为apache自带的openssl配置文件,引用到该文件的完整路径
输入两次密码,随便什么密码,然后一直回车,跳过下面的输入
openssl rsa -in server.pem -out server.key
输入刚才制定的密码
#生成密钥文件
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
#生成证书文件
把 server.key,server.crt copy到conf文件夹下
linux的——
生成服务器私钥:
#openssl genrsa -des3 -out server.key 1024
生成服务器证书请求,并按要求填些相关证书信息:
#openssl req -new -key server.key -out server.csr
# openssl x509 -req -days 700 -in server.csr -signkey server.key -out server.cert
Signature ok
重新启动APACHE
OK,恭喜你可以正常使用HTTPS来访问你的根目录了。
当然我们还需要ssl的虚拟主机
那就要配置虚拟主机文件,在文件中专门写一个监听443端口的虚拟主机,例如:
DocumentRoot /home/ownfire/www/abcd
ServerName abcd
SSLEngine on
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
因为规定主机名是abcd,所以还要写一个虚拟主机名规则
NameVirtualHost abcd:443
好了,完毕,这样就可以访问https://abcd了
关键词:apache开启ssl访问
本文全部来源于互联网,版权归属于原作者。本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(),我们收到后立即删除。
相关文章:
apache怎么配置https加密,apache怎么配置SSL证书,apache https配置方法,apache https配置步骤介绍。
Apache SSL怎么安装?Apache SSL怎么配置?Apache SSL证书安装配置方法教程(自主csr版)。
如何在CentOS配置Apache的HTTPS服务,这里以自签证书(仅用于测试)为例: 如果CentOS已经安装了Apache Web服务器,我们需要使用OpenSSL生成自签名证书。如果尚未安装OpenSSL...
请注意: Apache中含有https.conf和ssl.conf两个功能相同的文件,请只修改其中一...3. 完成配置Setup the server 请一定要分配443端口和一个固定的IP地址给主机...
1.安装Openssl要使Apache支持SSL,需要首先安装Openssl支持。Openssl下载地址http://www.openssl.org/source/tar -zxf openssl-1.0.1h.tar.gz //解压安装包...
2、打开apache安装目录下conf.d目录中的ssl.conf文件 在配置文件中查找以下配置...在浏览器地址栏输入: (申请证书的域名)测试您的SSL证书...
全国咨询热线:
地址:中国深圳市南山区南海大道1057号科技大厦二期A栋502
24小时客服电话:133
24小时技术支持电话:133下次自动登录
现在的位置:
& 综合 & 正文
c++ 访问 使用openssl 生成证书的java服务的总结
最近一直在研究C++访问java写的https的网站的,由于本人对证书的知识知道比较少,进展的特别慢,其中也查了不少资料关于证书的。证书类型这里写从别人的blog里摘的地址没记住转一点了。
PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange Syntax StandardX.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。PKCS#7 常用的后缀是: .P7B .P7C .SPCPKCS#12 常用的后缀有: .P12 .PFXX.509 DER 编码(ASCII)的后缀是: .DER .CER .CRTX.509 PAM 编码(Base64)的后缀是: .PEM .CER .CRT.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。.pem跟crt/cer的区别是它以Ascii来表示。pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式p10是证书请求p7r是CA对证书请求的回复,只用于导入p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
由于我们是分开来做的,我做c++的,同事做java的。java服务给我们一个keystore类型的证书和一个crt的证书。
我开始测试的如下,简单的说就是使用wininet进行实现。
代码是在codeproject上下载的地址我存到网盘上了
这个能访问https类型的网址,类似公网上的google邮箱,但是不能访问自己私有证书写的web服务,苦恼。
后来怀疑是证书问题,又通过
(在这里谢谢这个博主的作者了,非常感谢)通过openssl制作了一个证书,用上面的代码测试还是有问题。继续苦恼。
后来看了一些openssl便用openssl的库进行测试发现成功了。具体的也说不清楚了,我把openssl的地址和地址都贴出来。如果有不对的请高手指点了。
openssl的下载地址
源码的下载地址
如果无法下载了,可以直接发邮件到.希望明白的同学帮忙修改的晚上,我现在只是做了一测试。由于过年放假了,很难抽出整块时间整理了。先简单的写一些了。
贴出来大部分源码,也是从网上下载的,做了一些修改
/******************************************************************SSL/TLS客户端程序WIN32版(以demos/cli.cpp为基础)*需要用到动态连接库libeay32.dll,ssleay.dll,*同时在setting中加入ws2_32.lib libeay32.lib ssleay32.lib,*以上库文件在编译openssl后可在out32dll目录下找到,*所需证书文件请参照自行生成*///*****************************************************************/#include "stdafx.h"#include &stdio.h&#include &stdlib.h&#include &memory.h&#include &errno.h&#include &sys/types.h&
#include &winsock2.h&
#include "openssl/rsa.h" #include "openssl/crypto.h"#include "openssl/x509.h"#include "openssl/pem.h"#include "openssl/ssl.h"#include "openssl/err.h"#include "openssl/rand.h"
#pragma comment(lib, "libeay32.lib")#pragma comment(lib, "ssleay32.lib")#pragma comment(lib, "ws2_32.lib")//ws2_32.lib libeay32.lib ssleay32.lib/*所有需要的参数信息都在此处以#define的形式提供*/#define CERTF "client.csr" /*客户端的证书(需经CA签名).crt*/#define KEYF "client.key" /*客户端的私钥(建议加密存储)*/#define CACERT "ca.crt" /*CA 的证书*/#define PORT 9002 /*服务端的端口*/#define SERVER_ADDR "127.0.0.1" /*服务段的IP地址*/
#define CHK_NULL(x) if ((x)==NULL) exit (-1)#define CHK_ERR(err,s) if ((err)==-1) { perror(s); exit(-2); }#define CHK_SSL(err) if ((err)==-1) { ERR_print_errors_fp(stderr); exit(-3); }
int main (){ struct sockaddr_ SSL_CTX* SSL* X509* server_ char* char buf [4096]; SSL_METHOD * int seed_int[100]; /*存放随机序列*/
WSADATA wsaD
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0) {
printf("WSAStartup()fail:%d/n",GetLastError());
return -1; }
OpenSSL_add_ssl_algorithms(); /*初始化*/ SSL_load_error_strings(); /*为打印调试信息作准备*/
meth = TLSv1_client_method(); /*采用什么协议(SSLv2/SSLv3/TLSv1)在此指定*/ ctx = SSL_CTX_new (meth);
CHK_NULL(ctx);
//SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL); /*验证与否*/ //SSL_CTX_load_verify_locations(ctx,CACERT,NULL); /*若验证,则放置CA证书*/
//if (SSL_CTX_use_certificate_file(ctx, CERTF, SSL_FILETYPE_PEM) &= 0)
//ERR_print_errors_fp(stderr);
//exit(-2); //} //if (SSL_CTX_use_PrivateKey_file(ctx, KEYF, SSL_FILETYPE_PEM) &= 0)
//ERR_print_errors_fp(stderr);
//exit(-3); //}
//if (!SSL_CTX_check_private_key(ctx))
//printf("Private key does not match the certificate public key/n");
//exit(-4); //}
/*构建随机数生成机制,WIN32平台必需*/ srand( (unsigned)time( NULL ) ); for( int i = 0; i & 100;i++ ) seed_int[i] = rand(); RAND_seed(seed_int, sizeof(seed_int));
/*以下是正常的TCP socket建立过程 .............................. */ printf("Begin tcp socket.../n");
sd = socket (AF_INET, SOCK_STREAM, 0); CHK_ERR(sd, "socket");
memset (&sa, '/0', sizeof(sa)); sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr (SERVER_ADDR); /* Server IP */ sa.sin_port = htons (PORT); /* Server Port number */
err = connect(sd, (struct sockaddr*) &sa, sizeof(sa));
CHK_ERR(err, "connect");
/* TCP 链接已建立.开始 SSL 握手过程.......................... */ printf("Begin SSL negotiation /n");
//system("pasue"); ssl = SSL_new (ctx);
CHK_NULL(ssl);
SSL_set_fd (ssl, sd); err = SSL_connect (ssl); CHK_SSL(err);
/*打印所有加密的信息(可选)*/ printf ("SSL connection using %s/n", SSL_get_cipher (ssl));
/*得到服务端的证书并打印些信息(可选) */ server_cert = SSL_get_peer_certificate (ssl);
CHK_NULL(server_cert); printf ("Server certificate:/n");
str = X509_NAME_oneline (X509_get_subject_name (server_cert),0,0); CHK_NULL(str); printf ("/t subject: %s/n", str); //free (str);
str = X509_NAME_oneline (X509_get_issuer_name (server_cert),0,0); CHK_NULL(str); printf ("/t issuer: %s/n", str); //free (str);
X509_free (server_cert); /*如不再需要,需将证书释放 */
/* 数据交换开始,用SSL_write,SSL_read代替write,read */ printf("Begin SSL data exchange/n");
err = SSL_write (ssl, "Knock/r/n", strlen("Knock/r/n"));
CHK_SSL(err);
err = SSL_read (ssl, buf, sizeof(buf) - 1);
CHK_SSL(err);
buf[err] = '/0'; printf ("Got %d chars:'%s'/n", err, buf); SSL_shutdown (ssl); /* send SSL/TLS close_notify */
/* 收尾工作 */ shutdown (sd,2); SSL_free (ssl); SSL_CTX_free (ctx);
return 0;}/****************************************************************** EOF - cli.cpp*****************************************************************/
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 微信公众号好看图标 的文章

 

随机推荐