利用openssl生成可以和ssl证书请求文件
- 生成key openssl genrsa -des3 -out ssl.key 2048
- 删除密码 mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key
- 生成证书请求文件 openssl req -new -key ssl.key -out ssl.csr
- 会有以下提示
- Country Name (2 letter code) [AU]:CN (这里输入两位大写字母的国家代码 CN是中国)
State or Province Name (full name) [Some-State]:CQ (这里省份 可以填写简称,一般填写拼音)
Locality Name (eg, city) []:CQ (这里是城市可以填写简称,一般填拼音)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:qixing318 (组织或公司名)
Organizational Unit Name (eg, section) []: (不填写直接回车)
Common Name (eg, YOUR name) []:qixing318.com (输入使用ssl的域名,一般不带www)
Email Address []:admin@qixing318.com (填写邮箱,有时候证书是发送到这个邮箱)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (不填写直接回车)
An optional company name []: (不填写直接回车)
- 这样就生成csr文件了
接下来去startssl上申请证书
- 先要注册一个账户,点击sign-up 然后按照要求一步一步做就可以了
- 成功之后,重启浏览器登陆。登录成功后把 你生成的csr格式的文件内容复制到这里
- 然后把生成的csr文件内容复制到这里 就会生成一个crt文件,放到服务器上,记住路径,后面要用
server{
listen 80;
server_name localhost;
rewrite ^(.*)$ https://$host$1 permanent;(80是默认的端口 http的 如果需要跳转到https 加上这一句,不需要替换字符串!)
……
}
server{
listen 443;(https默认端口)
server_name localhost;
ssl on;
ssl_certificate /etc/nginx/conf.d/ssl.crt; (这是文件的路径,startssl生成的文件名不是这个 文件名 可以修改)
ssl_certificate_key /etc/nginx/conf.d/ssl.key;
}
重启nginx
service nginx restart
问题:如果能打开主页 但是发送不了请求 This request has been blocked; the content must be served over HTTPS.(报错信息)
解决办法:看看你的项目中的地址是不是https 因为https不能访问http连接。
大功告成!