windows 生成免费ssl证书 配置 https

时间:2024-03-16 11:23:06
window10 + phpstudy 配置 https

首先简单的理解下https与http

1、从URL HTTP 是 HTTP:// 开头,而 HTTPS 是 HTTPs:// 开头;

2、HTTP 是不安全的,而 HTTPS 是安全的,比如一些银行、*、平台网站会使用 HTTPS

3、传输效率上 HTTP 要高于 HTTPS ,因为 HTTPS 需要经过加密过程,过程相比于 HTTP 要繁琐一点;

4、HTTP 无需证书,而 HTTPS 必需要认证证书;

5、从 SEO 方面来参考。目前 谷歌和百度都优先选择在 HTTPS

6、还有一点也不能忽视,使用 HTTPS 需要证书,申请证书是要费用的,相比于 HTTP 不需要证书来说,HTTPS 这笔费用是无法避免的。

以上就是对 HTTP 和 HTTPS 的一些简述,至于怎么选择哪一个结合自身实际情况,择优选择。不过一个网站还是需要注重安全。


简单的介绍下证书

 HTTPS 的证书,采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一把锁,这把锁只有你一个人有这把钥匙,你可以把锁给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

windows 生成免费ssl证书 配置 https

windows 生成免费ssl证书 配置 https


以下仅作自己制作的操作  

报错信息 在最后

一、生成秘钥

openssl genrsa 1024 > server.key
这是用128位rsa算法生成**,得到server.key文件 > 是输出文件的标识符
windows 生成免费ssl证书 配置 https

二、生成未签署的server.csr 

openssl req -new -key server.key > server.csr

这是用步骤1的**生成证书请求文件server.csr, 这一步会有很多参数,需要一一输入
windows 生成免费ssl证书 配置 https

Country Name (2 letter code) [AU]:CN ISO国家代码(只支持两位字符)
State or Province Name (full name) [Some-State]:ZJ所在省份
Locality Name (eg, city) []:HZ所在城市
Organization Name (eg, company):SW_TECH公司名称
Organizational Unit Name (eg, section) []:SW_TECH组织名称
Common Name (eg, YOUR name) []:kedou.com申请证书的域名
Email Address []:[email protected] 管理员邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 交换**
An optional company name []:  注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动 (启动apache时错误提示为:RSA server certificate CommonName (CN) `Kedou' does NOT match server name!? )


 四、签署服务器证书文件server.crt
openssl req -x509 -days 365 -key server.key -in server.csr > server.crt 
说明:这是用步骤1,2的的**和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天,x509表示生成的为X.509证书。

windows 生成免费ssl证书 配置 https

四、配置httpd.conf.
在conf目录下的httpd_ssl.conf文件是关于ssl的配置,是httpd.conf的一部分,在 httpd.conf中找到给文件的引用,移除对应的注释
Include conf/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so

五、修改httpd-ssl.conf文件 并配置
SSLCertificateFile "D:/phpStudy/Apache/conf/ssl/server.crt" (具体的服务器地址)
SSLCertificateKeyFile "D:/phpStudy/Apache/conf/ssl/server.key" (具体的服务器地址)
CustomLog "D:/PHPStudy/Apache/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

配置
<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "D:/PHPStudy/WWW/" (域名带访问的目录)
ServerName www.rgweb.com:443 (域名)
ServerAdmin [email protected] (管理员邮箱)
ErrorLog "D:/PHPStudy/Apache/logs/ssl_error.log.txt" (写入日志)
TransferLog "D:/PHPStudy/Apache/logs/ssl_trans_error.log.txt" (写入日志)

至此重启apache 
浏览器输入 https 加你配置的域名

注:

错误:WARNING: can't open config file: /apache24/conf/openssl.cnf

解决

将openssl_conf 放入环境变量

set openssl_conf=../conf/openssl.cnf

windows 生成免费ssl证书 配置 https

错 :Unable to write ‘random state
是因为没有用管理员进入cmd
使用管理员身份进入cmd 就解决了
完毕!!!