Существует два средства выполнения этого, в зависимости от которого модуля SSL Вы установили. документы LWP рекомендуют установить Склеп:: SSLeay. Если это - то, что Вы сделали, установив HTTPS_CA_FILE
, переменная среды для указания ca-bundle.crt должна добиться цели. ( Склеп:: документы SSLeay упоминания это, но немного легки на деталях). Кроме того, в зависимости от Вашей установки Вы, возможно, должны установить HTTPS_CA_DIR
переменная среды вместо этого.
Пример для Склепа:: SSLeay:
use LWP::Simple qw(get);
$ENV{HTTPS_CA_FILE} = "/path/to/your/ca/file/ca-bundle";
$ENV{HTTPS_DEBUG} = 1;
print get("https://some-server-with-bad-certificate.com");
__END__
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL3 alert write:fatal:unknown CA
SSL_connect:error in SSLv3 read server certificate B
SSL_connect:error in SSLv3 read server certificate B
SSL_connect:before/connect initialization
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL3 alert write:fatal:bad certificate
SSL_connect:error in SSLv3 read server certificate B
SSL_connect:before/connect initialization
SSL_connect:SSLv2 write client hello A
SSL_connect:error in SSLv2 read server hello B
Примечание, которые добираются, не делает die
, но оно действительно возвращается undef
.
, С другой стороны, можно использовать IO::Socket::SSL
модуль (также доступный от CPAN). Чтобы заставить это проверить сертификат сервера, необходимо изменить значения по умолчанию контекста SSL:
use IO::Socket::SSL qw(debug3);
use Net::SSLeay;
BEGIN {
IO::Socket::SSL::set_ctx_defaults(
verify_mode => Net::SSLeay->VERIFY_PEER(),
ca_file => "/path/to/ca-bundle.crt",
# ca_path => "/alternate/path/to/cert/authority/directory"
);
}
use LWP::Simple qw(get);
warn get("https:://some-server-with-bad-certificate.com");
Эта версия также заставляет get()
возвращать undef, но печатает предупреждение STDERR
при выполнении его (а также набор отладки при импорте отладки* символы от IO:: Сокет:: SSL):
% perl ssl_test.pl
DEBUG: .../IO/Socket/SSL.pm:1387: new ctx 139403496
DEBUG: .../IO/Socket/SSL.pm:269: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:271: socket connected
DEBUG: .../IO/Socket/SSL.pm:284: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:327: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:1135: SSL connect attempt failed with unknown errorerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:333: fatal SSL error: SSL connect attempt failed with unknown errorerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:1422: free ctx 139403496 open=139403496
DEBUG: .../IO/Socket/SSL.pm:1425: OK free ctx 139403496
DEBUG: .../IO/Socket/SSL.pm:1135: IO::Socket::INET configuration failederror:00000000:lib(0):func(0):reason(0)
500 Can't connect to some-server-with-bad-certificate.com:443 (SSL connect attempt failed with unknown errorerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed)
Веб-сервер разработчика (Cassini) поддерживает только ASP.NET и статический контент.
Вам нужен экземпляр IIS, работающий на вашем компьютере разработчика.
Windows XP
Вкл. XP вам необходимо изменить веб-сайт по умолчанию так, чтобы либо его домашний каталог указывал на корневую папку вашего сайта, либо создать новый виртуальный каталог и настроить его как приложение. В любом случае вы захотите установить изоляцию приложения на «Высокий»
. Откройте свой веб-сайт напрямую в браузере, а затем в VS 2008 используйте Debug-> Attach to Process. Вам необходимо присоединиться к процессу с именем «DLLHOST.EXE». Их будет несколько, но, скорее всего, только один из них будет содержать слово «Сценарий» в столбце «Тип», и это именно то, что вам нужно. Убедитесь, что поле «Присоединить к» над списком процессов содержит «
Используйте IIS для сервера и Response.Write для отладки. Как мы это делали «в свое время»;)
Как говорил Энтониу Джонс, в сервере разработки Visual Studio нельзя отлаживать код, отличный от ASP.Net.
Однако, если на вашей машине установлен IIS 6.0, вы можете использовать отладчик Microsoft Script Debugger, который, возможно, уже будет установлен на вашей машине (у меня он есть).
Здесь вы можете узнать, как включить отладку IIS 6.0: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/3c7830b4-df5c-41a2-9890-c201eb774c89.mspx?mfr=true
Assuming you are running Windows XP with IIS installed and VS 2008 with the default settings pref "General Developer Settings" you need to enable ASP debugging in IIS: Open Internet Information Server management console Right click the "Default Web Site" Left click "Properties" Select the "Home Directory" tab Left Click the "Configuration" button Select the "Debugging" tab Check both fags in the Debugging Flags section Click Ok on all the dialogs until you are back to the management console Close the management console You now need to set permissions, you need to ensure that the IWAM user and the IIS authenticated user have read access to the ASP file you want to debug. I find working as an administrator helps with permissions. Note permissions will probably be your biggest hurdle. Now you need to edit your ASP page and place the word "Stop" in the code just before where you want to debug, Note: you require to be logged into the Console session in windows if you are using Remote Desktop. Browse to the page in question and you shout be prompted to debug, you will then choose what debugger you want to use, select VS2008, now you are debugging Classic ASP. Note: This is from memory so if you have any trouble let me know, also VS2005 is better for debugging Classic ASP. I don't know if the Express editions will work with those instructions. All asp pages have to be hosted in IIS.