您的位置:首页 > 理论基础 > 计算机网络

openssl生成https证书

2016-11-18 14:21 274 查看

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 -config openssl.cnf


在/etc/pki/tls目录下生成了server.csr文件。

自己生成CA的签名

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf


生成两个文件 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 -config openssl.cnf


生成了server.crt文件。

合并证书文件(crt)和私钥文件(key)

cat server.crt server.key > server.pem


搭建https服务器

修改nginx配置文件如下:

server {
listen       443;
server_name  localhost;
root         /var/www/html;
ssl                  on;
ssl_certificate      /etc/pki/tls/server.pem;
ssl_certificate_key  /etc/pki/tls/server.key;
ssl_session_timeout  5m;
ssl_protocols  SSLv2 SSLv3 TLSv1;
ssl_ciphers  HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers   on;
location / {
}
}


然后通过浏览器输入
https://localhost
就可以查看效果了。

如果想要php支持https,只要加入解析php的配置即可:

location ~ \.php$ {
root          /var/www/html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on; # 多加这一句
include        fastcgi_params;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos nginx openssl php https