在本文中,我们将向您展示如何仅使用单个IP地址在带有Apache的CentOS上设置多个SSL证书。通常,网站管理员被限制为每个插座使用具有IP的单个SSL证书,这将给公司带来大量投资。此限制可能导致他们购买HTTP网站的多个IP地址作为其域名托管服务,或购买允许他们利用多个网络适配器的硬件。
SSL协议的扩展名为“服务器名称指示(SNI)”允许这样做。当前大多数台式机和移动Web浏览器都支持SNI。使用SNI的主要好处是无需购买更多IP地址即可保护多个网站的能力。
确保已安装并启用了mod_ssl安全模块,以便Apache Web服务器可以使用OpenSSL库和工具包:
# yum install mod_ssl openssl
# mkdir -p /etc/httpd/ssl/ # mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak # cd /etc/httpd/ssl/
# openssl genrsa -out mydomain1.key 2048 # openssl req -new -key mydomain1.key -out mydomain1.csr # openssl genrsa -out domain2.key 2048 # openssl req -new -key mydomain2.key -out mydomain2.csr Enter the following details for your certificates: Country Name (2 letter code) [AU]:IN State or Province Name (full name) [Some-State]:Telengana Locality Name (eg, city) []:Hyderabad Organization Name (eg, company) [Internet Widgits Pty Ltd]:mydomain1.com Organizational Unit Name (eg, section) []:mydomain.com Common Name (e.g. server FQDN or YOUR name) []:mydomain1.com Email Address []:sslcertificate@domain1.com
当我们在生产环境中部署时,建议安装商业SSL证书。或者,我们只使用以下命令生成用于开发目的或搭建网站的自签名SSL证书
# openssl x509 -req -days 365 -in mydomain1.csr -signkey mydomain1.key -out domain1.crt # openssl x509 -req -days 365 -in mydomain2.csr -signkey mydomain2.key -out mydomain2.crt
# vi /etc/httpd/conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so Listen 443 NameVirtualHost *:443 SSLPassPhraseDialog builtin SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin SSLStrictSNIVHostCheck off <VirtualHost *:443> DocumentRoot /var/www/html/mydomain1 ServerName mydomain1.com ServerAlias www.mydomain1.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/mydomain1.cr SSLCertificateKeyFile /etc/httpd/ssl/mydomain1.key ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/html/mydomain2 ServerName mydomain2.com ServerAlias www.mydomain2.com SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/httpd/ssl/mydomain2.crt SSLCertificateKeyFile /etc/httpd/ssl/mydomain2.key ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ Downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
当我们使用商业SSL证书时,签名机构可能会包括一个中间CA证书。在这种情况下,我们将创建一个新的'/etc/httpd/ssl/ca.crt'文件并将中间CA的内容粘贴到其中,然后我们需要编辑'ssl.conf'配置文件并取消注释以下行。
SSLCertificateChainFile /etc/httpd/ssl/ca.crt
因此,Apache Web服务器可以找到您的CA证书。
# /etc/init.d/httpd configtest Syntax OK
# service httpd restart
在您喜欢的Web浏览器中打开https://mydomain1.com和https://mymydomain2.com,并验证SSL证书是否已正确安装。
完成此设置并重新启动Apache之后,您可以使用支持SNI的浏览器访问http的站点。如果设置正确,则可以访问该站点而不会出现任何警告或问题。您可以根据需要使用上述过程添加任意数量的网站或SSL证书。
APP1在端口80上使用Apache2 APP2在端口81上使用IIS App3在端口83上使用Xampp Apache 我已经为每个端口1有了一个域。端口80 2的domain1.com。端口81 3的domain2.com。端口83的domain3.com 所有域都指向服务器,当我在域后面使用(:port)时,它工作得很好,例如。域1:83已经在端口83上打开了Xampp Apache。 每个
问题内容: 嗨,我必须从多个Web服务器检索数据。首先,我以用户身份登录到我的网站。成功登录后,我必须从不同的Web服务器获取数据并显示。如何与多个服务器共享一个会话。我该如何实现? 首次登录时,创建会话和会话ID,并将其保存在该服务器的temp文件夹中。当我尝试访问另一台服务器时,如何使用登录时已经创建的当前会话。有人可以提出解决方案吗? 问题答案: 您必须使用另一个会话处理程序。 您可以: 建
更新后,我在Ubuntu服务器上部署codeigniter项目时遇到了一些问题,当我点击链接时,我发现404 Apache错误。 当我把项目放进去的时候http://roy.my-domain.com/ =/var/www/html/folder-一切正常-但当我添加子目录时http://roy.my-domain.com/roy/ =/var/www/html/roy/-我收到404个错误。 当
问题内容: 我正在尝试从本地网络服务器访问Active Directory。为此,我使用了最新版本的xampp和一个名为adLDAP的PHP脚本。如果我理解正确,则需要启用SSL才能访问https URL。我试着用谷歌搜索它,但是没有运气:(任何人都可以链接教程或向我解释如何在xampp / apache上为Windows 7 64bit安装SSL吗? 问题答案: Apache部分-使您能够打开h
问题内容: 在以前的Express版本中,我可以这样做: 但是,在较新版本的express中,此功能不再起作用: 我应该打电话来设置证书吗?如果可以,怎么办? 问题答案: 请参阅Express文档以及https.createServer的Node文档(express建议使用的文档): createServer的其他选项位于:http : //nodejs.org/api/tls.html#tls_
我需要你的帮助在这里创建一个虚拟主机在wampserver。在办公室里,我可以创建一个虚拟主机,但是当我试图在笔记本电脑上创建时,它不起作用。我仍然不知道出了什么问题。这是我做的。 > E:\Subversion\chelle。wpblog。本地的 我编辑主机文件 > 127.0.0.1chelle.wpblog.local 接下来是我在Apache中启用虚拟主机 > C:\wamp\bin\ap