使用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
。任何进一步的帮助或资源来纠正此问题,将不胜感激。
致谢
答案 0 :(得分:0)
除非客户端信任自签名证书,否则任何浏览器都不会信任它,要使自己成为CA确实很困难。如果您的服务器是公共服务器,请使用CA签名的ssl证书。如果您不想付款,请使用LetsEncrypt之类的服务并使用ZeroSSL.com,SSLForFree.com等免费生成ssl证书,或者在您的网站上使用cPanel并使用他们提供的AutoSSL。切勿在生产服务器上使用自签名证书。如果它是家庭服务器或测试/开发服务器,并且是私有服务器,则对本地主机使用自签名证书没有问题。
但是,如果您仍然希望继续使用自签名证书并在浏览器中看到您的网站(如果您的网站使用HSTS,则无法使用),请在chrome中执行以下操作,这可能与其他浏览器类似。
1)转到您的网站
2)单击高级:
3)点击继续进入example.com(不安全)
如果您希望仅由您的计算机信任您的自签名证书(因为单击按钮不能在世界上的所有计算机上信任它,那么这将是一个很大的过程,甚至不可能) ,请按照以下步骤操作(仅适用于Windows,但您的服务器不必是Windows):
1)下载您的SSL证书,然后打开包含ssl证书的文件夹。
2)右键单击带有证书信息的certname.crt文件,然后单击“安装证书”(通过在Windows中启用显示文件扩展名,提供.crt扩展名(如果是.txt)。
3)如果您不拥有计算机,请选择“当前用户”,否则请选择“本地计算机”(但是,我更喜欢“当前用户”),然后单击“下一步”。
4)选择“将所有证书放入以下存储区”,然后单击“浏览”,然后选择“受信任的根证书颁发机构”,然后单击“确定”。
5)单击下一步
6)单击完成,如果需要,请单击是。