自签名证书不起作用-无效的CA

时间:2020-01-01 07:11:42

标签: apache ssl openssl

使用openssl我正在尝试在使用Apache的服务器上安装ssl证书。跟随一些链接,例如this youtube tutorial。我能够下载/安装openSSL, 运行以下命令

openssl genrsa -aes256 -out private.key 2048
openssl rsa -in private.key -out private.key
openssl req -new -x509 -nodes -sha1 -key private.key -out certificate.crt -days 36500 -config C:\xampp\apache\conf\openssl.cnf

然后取消注释以下内容,

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

extension=php_openssl.dll

最后在httpd-ssl-conf中编辑虚拟文件

#   General setup for the virtual host
DocumentRoot "C:/xampp/htdocs"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"
SSLCertificateFile "C:/xampp/apache/conf/key/certificate.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/key/private.key"

最后,我打开certmgr.msc并导入了证书的位置。

错误

当前,当我运行带有https前缀的应用程序时,它会导航到该页面,但是,https变成红色并划掉了(Google Chrome)。在进入实际页面之前,我在IE中获得了以下错误代码Error Code: DLG_FLAGS_INVALID_CA,在Chrome中获得了以下错误代码err_cert_authority_invalid。任何进一步的帮助或资源来纠正此问题,将不胜感激。

致谢

1 个答案:

答案 0 :(得分:0)

除非客户端信任自签名证书,否则任何浏览器都不会信任它,要使自己成为CA确实很困难。如果您的服务器是公共服务器,请使用CA签名的ssl证书。如果您不想付款,请使用LetsEncrypt之类的服务并使用ZeroSSL.comSSLForFree.com等免费生成ssl证书,或者在您的网站上使用cPanel并使用他们提供的AutoSSL。切勿在生产服务器上使用自签名证书。如果它是家庭服务器或测试/开发服务器,并且是私有服务器,则对本地主机使用自签名证书没有问题。

但是,如果您仍然希望继续使用自签名证书并在浏览器中看到您的网站(如果您的网站使用HSTS,则无法使用),请在chrome中执行以下操作,这可能与其他浏览器类似。

1)转到您的网站

2)单击高级:

Chrome

3)点击继续进入example.com(不安全)

Chrome

如果您希望仅由您的计算机信任您的自签名证书(因为单击按钮不能在世界上的所有计算机上信任它,那么这将是一个很大的过程,甚至不可能) ,请按照以下步骤操作(仅适用于Windows,但您的服务器不必是Windows):

1)下载您的SSL证书,然后打开包含ssl证书的文件夹。
2)右键单击带有证书信息的certname.crt文件,然后单击“安装证书”(通过在Windows中启用显示文件扩展名,提供.crt扩展名(如果是.txt)。

3)如果您不拥有计算机,请选择“当前用户”,否则请选择“本地计算机”(但是,我更喜欢“当前用户”),然后单击“下一步”。

4)选择“将所有证书放入以下存储区”,然后单击“浏览”,然后选择“受信任的根证书颁发机构”,然后单击“确定”。

5)单击下一步
6)单击完成,如果需要,请单击是。