网站建设科目,网站建设+廊坊,wordpress comment_author_link,如何建立网页2019独角兽企业重金招聘Python工程师标准 环境 系统#xff1a;archlinux/centOS nginx#xff1a;nginx/1.12.2 浏览器#xff1a;火狐firefox 前提#xff1a;1.安装nginx。 2.安装openssl。 生成证书 新建工作目录 首先建立一个工作目录#x… 2019独角兽企业重金招聘Python工程师标准 环境 系统archlinux/centOS nginxnginx/1.12.2 浏览器火狐firefox 前提1.安装nginx。 2.安装openssl。 生成证书 新建工作目录 首先建立一个工作目录这里以我的工作目录为例。(/home/yinghui/ssl/demoCA-my/)然后执行如下命令。建立生成证书的路径文件结构这是由openssl的默认配置文件决定的。你可以修改配置。 mkdir demoCA-my
cd demoCA-my
touch ./{serial,index.txt}
echo 01 serial
mkdir ./newcerts 配置 openssl.cnf 拷贝配置文件到工作目录。当然前缀路径要换成你自己的。 cp /usr/local/ssl/openssl.cnf ./ 修改配置文件。编辑openssl.cnf中的一些选项。 unique_subject no (这样一个CA可以同时签多张证书) countryName optional(把这些参数的匹配规则改为可选) stateOrProvinceName optional organizationName optional organizationalUnitName optional 效果 修改dir配置注意是CA_default 下面的dir 生成CA跟证书 现在我们来生成自己的CA跟证书 openssl req -days 365 -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf 生成会话会让你填入一些参数根据实际情况填写。执行完会发现工作目录下会有ca.crt ca.key两个文件。截图如下 大概说明一下上面各项的意思 输入项解释值AU国籍cnstate or province州 省份beijingLcality Name城市bjO name(简写)公司jinxiO U name简写组织jinxi360common name通用名网址或者你的名字Email你的邮箱略结果多了两个文件 生成server端证书 首先生成server端私钥。执行后会要求输入解析私钥文件的密码。生成server.key。 openssl genrsa -des3 -out server.key 1024 生成证书请求 生成会话会提示输入一些请求信息成功后生成server.csr openssl req -new -key server.key -out server.csr -config openssl.cnf 注意上图中画线的一行这行输入server端的域名或者IP地址,这里是https://192.168.1.100 。否则签发的服务端证书会被浏览器视为不是本站点的证书最后两项我这里直接回车。其他参考上面的解释。 执行后多出一个文件server.csr 现在用生成的CA给证书请求server.csr签发证书crt文件。根据提示输入相关密码之前设置好的和两个 yyes回车成功后生成证书server.crt openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf 生成的服务端证书文件 到这里我们已经可以做单项认证了来试试。 验证单向认证 配置nginxvi /usr/local/nginx/conf/nginx.conf修改配置如下图(注意证书和CA的路径是我的工程路径) server {listen 443;#server_name abc.jinxi360.com;ssl on; ssl_certificate /home/yinghui/ssl/demoCA-my/server.crt; #服务端证书ssl_certificate_key /home/yinghui/ssl/demoCA-my/server.key; #服务端私钥ssl_client_certificate /home/yinghui/ssl/demoCA-my/ca.crt; #跟CA证书ssl_session_timeout 5m;ssl_verify_client on; #开户客户端证书验证ssl_prefer_server_ciphers on;#add_header Strict-Transport-Security max-age31536000;#access_log /var/log/nginx/adm_access.log;#error_log /var/log/nginx/adm_error.log;location / {root html;index index.html index.htm;} } 保存后验证 nginx.conf配置文件 启动nginx 会要求输入server端私钥文件解析密码输入生成时设置的密码。 在windows下打开firefox输入https://192.168.1.100回车。 这说明nginx已经向浏览器发送了自己的证书但是这个证书不受信任。别急现在我们把之前自己的CA导入浏览器。 打开 选项-高级-查看证书-证书机构-导入。先择CA后根据提示导入证书。成功后如下 再次输入https://192.168.1.100回车。 看见中间那行提示了吗中式英语翻译过来就是--没有要求的ssl证书来发送。也就是说client已经成功认证了server端的证书但是我们配置nginx为双向认证所以nginx要求浏览器出示证书而浏览器没有证书。 说明单项认证已经OK现在为client生成证书。 生成client证书 首先生成client端私钥执行后会要求输入解析私钥文件的密码根据个人喜好设置。生成client.key。 openssl genrsa -des3 -out client.key 1024 生成证书请求。生成会话会提示输入一些请求信息成功后生成client.csr。 openssl req -new -key client.key -out client.csr -config openssl.cnf 上图中画线的是证书在浏览器中显示的名字这里使用域名地址作为证书的名称上面最后两项我直接回车。 生成客户端crt证书 现在用之前生成的CA给证书请求client.csr签发证书。根据提示输入相关密码之前设置好的和yyes成功后生成证书client.crt openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf 生成p12证书 firefox要求客户端的证书格式是p12格式所以我们把client.crt转化为client.p12格式 openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 转pem格式 cat ca.crt ca.key ca.pem
cat server.crt server.key server.pem
cat client.crt client.key client.pem 最后一步把client.p12导入浏览器。 打开 选项-高级-查看证书-您的证书-导入。根据提示导入导入成功后如图 查看证书信息 输入https://192.168.68.173:8080回车。 OK go go go 附 最终目录下的文件列表 转载于:https://my.oschina.net/iyinghui/blog/1832914